我的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,所以它很好)。
我认为这可能不是获取存储过程的返回值的正确方法。怎么可以这样做?
答案 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;