【发布时间】:2012-01-17 03:44:02
【问题描述】:
我正在创建一个需要与旧代码交互的新应用程序:(。
我试图调用的存储过程使用 RETURN 作为其结果。我尝试执行和使用返回值导致异常:
InvalidOperationException:执行命令时,参数必须是数据库参数或值。
不希望更改存储过程以另一种方式返回值,因为它要么需要更新旧版应用程序,要么需要维护几乎重复的存储过程。
遗留的存储过程概要:
DECLARE @MyID INT
INSERT INTO MyTable ...
SELECT @MyID = IDENTITY()
RETURN @MyID
我的实体框架/DbContext 工作,产生上述 InvalidOperationException。
SqlParameter parm = new SqlParameter() {
ParameterName = "@MyID",
Direction = System.Data.ParameterDirection.ReturnValue
};
DbContext.Database.ExecuteSqlCommand("EXEC dbo.MyProc", parm);
寻找任何和所有不需要修改存储过程的解决方案。
【问题讨论】:
标签: sql-server entity-framework-4.1 ef-code-first