2013-01-25 101 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;