小编典典

ASP.NET MVC4从带有实体框架的存储过程返回输出

sql

我试图从存储过程中获取简单的输出

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”在当前上下文中不存在

提前非常感谢希什


阅读 164

收藏
2021-04-14

共1个答案

小编典典

您的问题是您的SPROC输出是一个int。

请参见Scott Gu的文章中的以下引用。

“ 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();
}
2021-04-14