实体框架和存储过程

时间:2013-01-25 10:17:55

标签: entity-framework stored-procedures

我正在使用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变量的值。

1 个答案:

答案 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;
相关问题