我正在创建一个新的应用程序,需要与旧代码进行接口:(.
我试图调用的存储过程使用RETURN作为其结果.我尝试执行和使用返回值会导致异常:
InvalidOperationException: When executing a command,parameters must be exclusively database parameters or values.
改变存储过程以不同的方式返回值是不希望的,因为它要么更新旧的应用程序或维护几乎重复的存储过程.
遗留存储过程概要:
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);