我试图从存储过程中获取简单的输出
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在以下部分出现错误:
var qry
方法’sp_getrandomnumber’的重载没有接受1个参数 名称“ randoms”在当前上下文中不存在
方法’sp_getrandomnumber’的重载没有接受1个参数
名称“ randoms”在当前上下文中不存在
提前非常感谢希什
您的问题是您的SPROC输出是一个int。
请参见Scott Gu的文章中的以下引用。
“ LINQ to SQL将SPROC中的“ out”参数映射为参考参数(ref关键字),对于值类型,该参数将参数声明为可为空。
因此,您需要确保将自己声明randoms为可为null的int。
randoms
将您的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(); }