我们不得不将使用 EF5 的项目降级到 EF4,并且正在努力将存储过程纳入 EF 模型。
该过程返回一个表:
-- 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
但是,添加 proc 似乎非常不同。存储过程未显示在我们的实体框架上下文中。
所以我们按照这里显示的例子:http: //msdn.microsoft.com/en-us/library/bb896231.aspx
但是,我们选择返回类型为“复杂”,但是当我们单击“获取列信息”时,我们会遇到以下错误:
尝试获取列信息时发生“Microsoft.SqlServer.Management.Sdk.Sfc.EnumeratorException”类型的异常。异常消息是:ExecuteScalar 需要一个打开且可用的连接。连接的当前状态为关闭。捕获的内部异常属于“System.InvalidOperationException”类型,并带有以下错误消息:“ExecuteScalar 需要一个打开且可用的连接。连接的当前状态是关闭的。'。
谁能帮助解决这个错误,或者解释一个更好的方法来引用 EF4.4 中的存储过程?