ASP.NET MVC4从具有实体框架的存储过程返回输出
本文关键字:框架 存储过程 返回 输出 实体 NET MVC4 ASP | 更新日期: 2023-09-27 18:10:44
我一直在尝试从存储过程中获得一个简单的输出
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_gerandomnumber '不重载
名称'randoms'在当前上下文中不存在
我试着遵循这个教程http://weblogs.asp.net/scottgu/archive/2007/08/16/linq-to-sql-part-6-retrieving-data-using-stored-procedures.aspx
提前感谢别哭
您的问题是您的SPROC输出是int。
请看以下引用自Scott Gu的文章
"LINQ to SQL将SPROCs中的"out"参数映射为引用参数(ref关键字),对于值类型,将参数声明为可空。"
所以你需要确保你将randoms
声明为一个可空的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();
}