繁体   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