0

私は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 変数なしでは値を返しません。

4

1 に答える 1

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;
于 2013-01-25T10:48:26.880 に答える