获取EF6中存储过程的返回值

时间:2014-08-07 22:41:31

标签: c# entity-framework stored-procedures

我的SQL Server数据库中有一个存储过程,我将其用作并发控件。

例如:

IF row is deleted concurrently 
   RETURN 0
ELSE IF row is edited concurrently 
   RETURN -1
ELSE 
   RETURN 1

当我这样做时使用C#:

int i = myContext.SP(params);

似乎存储过程只返回0和1,它永远不会返回-1值(当我在SQL Server Management Studio中运行存储过程时,我得到-1,所以它很好)。

我认为这可能不是获取存储过程的返回值的正确方法。怎么可以这样做?

1 个答案:

答案 0 :(得分:0)

实体框架问题需要实体框架解决方案。在这种情况下,我才意识到我也可以这样做:

 //Run the SP
 Context.SP(params...,ID, Version);
 //Check the result 
 //Concurrently Deleted
 var C_Deleted = Context.Table.Where(x=> x.ID.Equals(ID)).Count() <= 0;
 //Concurrently Edited
 var C_Edited = (from x in Context.Table
                where x.ID.Equals(ID)
                && 
                x.Version == Version
                select x).Count() <= 0;