簡體   English   中英

ASP.NET MVC4從帶有實體框架的存儲過程返回輸出

[英]ASP.NET MVC4 return output from a stored procedure with Entity Framework

我試圖從存儲過程中獲取簡單的輸出

ALTER PROCEDURE [dbo].[sp_getrandomnumber]
        @randoms int output
AS
begin
  set @randoms =12345
end

和我的MVC

    public ActionResult Index()
    {
        var qry = db.sp_getrandomnumber(ref randoms); 
      ......
     return View();
    }
}

但是當我編譯時,我在var qry部分得到了錯誤,提示如下

方法'sp_getrandomnumber'的重載沒有接受1個參數

名稱“ randoms”在當前上下文中不存在

我嘗試遵循本教程http://weblogs.asp.net/scottgu/archive/2007/08/16/linq-to-sql-part-6-retrieving-data-using-stored-procedures.aspx

提前謝謝

您的問題是您的SPROC輸出是一個int。

請參見Scott Scott文章的以下引文。

“ LINQ to SQL將SPROC中的“ out”參數映射為參考參數(ref關鍵字),對於值類型,該參數將參數聲明為可為空。

因此,您需要確保將randoms聲明為可為null的int。

將您的sp呼叫更改為

public ActionResult Index()
{   
    // @randoms int output from SPROC.
    int? randoms = null;

    // qry would contain a select if you had one in the SPROC.
    var qry = db.sp_getrandomnumber(ref randoms); 

    // randoms is 12345

    return View();
}

在這里找到另一個示例。

暫無
暫無

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

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