我正在使用EF 4.3执行一个存储过程,只删除一些记录并在成功时返回0,否则1.当我执行sp时(使用this.DbContext.Database.ExecuteSqlCommand(sql,id))我是得到-1这不是我所期待的。
有人可以告诉我出了什么问题吗?
基本上存储过程非常简单:
BEGIN TRY
-- Delete records here
END TRY
BEGIN CATCH
IF @@TRANCOUNT > @BeginTranCount
ROLLBACK TRANSACTION
RETURN 1
END CATCH
IF @@TRANCOUNT > @BeginTranCount
COMMIT TRANSACTION
RETURN 0
sp也不会返回带有out变量的值。
答案 0 :(得分:0)
我们确实需要查看您的代码,但这是一般性的想法:
SqlParameter parm = new SqlParameter() {
ParameterName = "@MyID",
SqlDbType = SqlDbType.Int,
Direction = System.Data.ParameterDirection.Output
};
Database.ExecuteSqlCommand("exec @MyId = dbo.MyProc", id);
int retyrnedId = (int)id.Value;