C# C实体框架在ExecuteFunction上引发错误

C# C实体框架在ExecuteFunction上引发错误,c#,sql-server,entity-framework,C#,Sql Server,Entity Framework,快速更新,我逐行浏览,看到函数求值需要运行所有线程 尝试在C中使用Entity Framework执行存储过程。我已经成功地为存储过程中的SELECT语句执行了此操作,但在更新中没有这么多 我已核实以下情况: 存储过程在SQL Server中使用我手动输入的值工作 存储过程期望bigint作为参数,因此输入作为INT64发送。 我假设EF是围绕存储过程构建的,该方法可以遍历除返回语句之外的所有部分,在返回语句中我得到一个相当普遍的InvalideException错误 有什么想法吗?我可以提供一

快速更新,我逐行浏览,看到函数求值需要运行所有线程

尝试在C中使用Entity Framework执行存储过程。我已经成功地为存储过程中的SELECT语句执行了此操作,但在更新中没有这么多

我已核实以下情况:

存储过程在SQL Server中使用我手动输入的值工作 存储过程期望bigint作为参数,因此输入作为INT64发送。 我假设EF是围绕存储过程构建的,该方法可以遍历除返回语句之外的所有部分,在返回语句中我得到一个相当普遍的InvalideException错误

有什么想法吗?我可以提供一些存储过程和方法行:

 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;
然后各种各样的更新语句,我粘贴的这个就是最初创建的

任何你能想到的建议都会很有帮助。不确定是什么原因导致了这种情况,深入研究异常似乎没有产生任何帮助


谢谢大家

从存储过程返回@@ROWCOUNT。您遇到的问题很可能与存储过程返回的类型与ExecuteFunction方法预期的返回值不匹配有关。

和@Richard I wish:的可能重复项:。但是,如果您发现任何引用我的更新的内容,请告诉我:。@MikeCMR-您是否从存储的进程中返回了任何内容?ExecuteFunction返回Int32…。根据MSDN文档,当读取器和函数之间存在类型不匹配时,将引发InvalidOperationException。想知道是否返回的不是更新的行数?这可能是导致异常的原因吗?@user1011627建议不错,但不是。不归还任何东西。它可以返回一个看起来像int的值,可能是受影响的行?但这不是我的目标。只需简单地将对象db.storaged\u procedurevalues作为一个方法来使用。也许可以尝试并返回@ROWCOUNT,然后看看它是否有效……至少从故障排除的角度来看是这样。再次感谢!我将仔细研究一下@rows为什么真正解决了这个问题,如果我发现了什么,我将进行更新。但很高兴它能起作用。嗯……请做……我挖了一点,看看是否能找到答案,但从来没有偶然发现一个真正的答案……不过我肯定很想知道。