sql-server – 具有ReturnValue参数的EF ExecuteStoredCommand
发布时间:2020-12-12 16:13:50 所属栏目:MsSql教程 来源:网络整理
导读:我正在创建一个新的应用程序,需要与旧代码进行接口:(. 我试图调用的存储过程使用RETURN作为其结果.我尝试执行和使用返回值会导致异常: InvalidOperationException: When executing a command,parameters must be exclusively database parameters or values.
我正在创建一个新的应用程序,需要与旧代码进行接口:(.
我试图调用的存储过程使用RETURN作为其结果.我尝试执行和使用返回值会导致异常:
改变存储过程以不同的方式返回值是不希望的,因为它要么更新旧的应用程序或维护几乎重复的存储过程. 遗留存储过程概要: 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); 寻找任何不需要修改存储过程的解决方案. 解决方法您可以将存储过程的返回值替换为输出参数:SqlParameter parm = new SqlParameter() { ParameterName = "@MyID",SqlDbType = SqlDbType.Int,Direction = System.Data.ParameterDirection.Output }; Database.ExecuteSqlCommand("exec @MyId = dbo.MyProc",parm); int id = (int)parm.Value; (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容