Нам пришлось отказаться от проекта, который использовал EF5, для EF4 и сражаются за получение хранимой процедуры в EF-модели.Сохраненные процедуры в EF4.4
Процедура возвращает таблицу:
-- A table to hold the results
DECLARE @Result TABLE
(
ActionType CHAR(1),
ChangedBy VARCHAR(50),
ChangedDate DATETIME,
FieldName VARCHAR(150),
OriginalValue VARCHAR(100),
NewValue VARCHAR(100),
ForeignKeyName VARCHAR(50),
ForeignKeyValue VARCHAR(15)
)
, а затем добавляет записи, и возвращает:
-- Return the result
SELECT * FROM @Result
Однако добавление процедурный кажется очень разные. Хранимые процедуры не отображаются в нашем контексте Entity Framework.
Так мы следуем пример, показанный здесь: http://msdn.microsoft.com/en-us/library/bb896231.aspx
Однако мы выбираем тип возвращаемого значения, как «комплекс», но когда мы нажмите «Получить Column информацию», мы встретили со следующей ошибкой:
An exception of type “Microsoft.SqlServer.Management.Sdk.Sfc.EnumeratorException” occurred while attempting to get columns information. The exception message is: ExecuteScalar requires an open and available Connection. The connection’s current state is closed. The inner exception caught was of type ‘System.InvalidOperationException’, with this error message: ‘ExecuteScalar requires an open and available Connection. The connection’s current state is closed.’.
Может кто-нибудь помочь с этой ошибкой или, возможно, объяснить лучший способ ссылки на хранимые процедуры в EF4.4?
+1 * не использовать 'SELECT *' * ** всегда ** хороший совет в производственной системе! –
Действительно. Я нарушил правило. Но, надеюсь, моя ошибка поможет другим. – Craig