2

Entity Frameworkを使用したスト​​アドプロシージャからのASP.NET MVC4戻り出力の下のスレッドで同様の問題があります

私は同じことを試しましたが、エラーが発生しています:

暗黙的に型指定されたローカル変数に void を割り当てることはできません

これが私の手順です:

create PROCEDURE [dbo].[usp_UpdateValuesInTables]  
(  
    @s_clientid int,
    @success int output
)  
AS  
BEGIN  
    Begin Try
        BEGIN TRAN  
            ---- sql statements
        COMMIT TRAN 
        set @success=1 
    End Try
    Begin Catch
        ROLLBACK TRAN  
        set @success=0  
    End Catch
END 

およびC#コード

int? success = null;
var successCode = Context.usp_UpdateValuesInTables(Convert.ToInt32(obj.SourceClientDropDown),ref success);

なぜそのエラーが発生するのですか?

に置き換えようとするvarint、エラーが発生します

型 void を int に暗黙的に変換できません

4

2 に答える 2

0

これを試して:

int? success = null;
Context.usp_UpdateValuesInTables(Convert.ToInt32(obj.SourceClientDropDown),ref success);
var successCode = success; //success is the returned result.
于 2013-09-29T12:05:31.467 に答える
0

あなたの問題は、ストアド プロシージャが実際には値を返さないことですが、Entity Framework は戻り値を認識していませんVoid。Entity Framework が戻り値をSET NOCOUNT ON決定し、既定値をマップできるように、ストアド プロシージャで使用する必要があります。Void

于 2013-09-29T14:34:05.117 に答える