2013-01-25 43 views
0

我正在使用EF 4.3来执行一个存储过程,它只是删除了一些记录,并在成功时返回0 else。当我执行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不与出变量的返回值。

+0

请分享你的'storeProcedure'。 – spajce

回答

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;