簡體   English   中英

MVC4將帶有linq的存儲過程輸出返回到sql

[英]MVC4 return a stored procedure output with linq to sql

我在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);

為什么會出現該錯誤?

如果我嘗試用int替換var ,那么我會報錯

無法將類型void隱式轉換為int

嘗試這個:

int? success = null;
Context.usp_UpdateValuesInTables(Convert.ToInt32(obj.SourceClientDropDown),ref success);
var successCode = success; //success is the returned result.

您的問題是存儲過程實際上沒有返回值,但是Entity Framework無法Void返回。 您需要確保在存儲過程中使用SET NOCOUNT ON ,以便Entity Framework可以確定Void返回並在其中映射默認值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM