我一直试图从存储过程中获取一个简单的输出
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”这个名称
答案 0 :(得分:1)
您的问题是您的SPROC输出是int。
请参阅Scott Gu的文章中的以下引用。
“LINQ to SQL将”SPROC中的参数“映射”为参考参数(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();
}
找到另一个例子here。