快速更新,我逐行浏览,看到“函数评估需要所有线程都可以运行”。
尝试使用C#中的Entity Framework执行存储过程。对于存储过程中的SELECT
语句,我已经成功地做到了这一点,但是对于UPDATE
来说却不是那么成功。
我已验证以下内容:
bigint
作为参数,因此输入将作为INT64发送。我假设EF是围绕存储过程构建的方法,它遍历了除return语句之外的所有部分,在那里我得到了一个相当普遍的invalidexception错误。
对此有何想法?我可以提供一些存储过程和方法上的代码:
return ((IObjectContextAdapter)this).ObjectContext.ExecuteFunction("SP_HERE", int64, int64, int64, int64);
}
这是存储过程:
CREATE PROCEDURE some_SP
@var1 bigint,
@var2 bigint,
@var3 bigint,
@var4 bigint
AS
BEGIN
--SET NOCOUNT ON;
然后,我粘贴的各种更新语句是原始创建的。
任何提示都可以帮到您。不知道是什么原因造成的,深入研究异常似乎没有任何帮助。
谢谢大家!
答案 0 :(得分:1)
从存储过程中返回@@ ROWCOUNT。您遇到的问题很可能与存储的proc返回的类型与ExecuteFunction方法期望的返回值之间的不匹配有关。