C# 传递参数以返回存储过程的复杂结果
我能够通过“从数据库更新模型”向导成功地添加存储过程。对于不需要任何输入参数的存储过程,我可以轻松检索复杂查询 但是,我无法返回需要输入参数的存储过程的结果。我尝试在我的C类中传递它,并将其存储在结果中,如下所示:C# 传递参数以返回存储过程的复杂结果,c#,asp.net,sql-server,entity-framework-6,C#,Asp.net,Sql Server,Entity Framework 6,我能够通过“从数据库更新模型”向导成功地添加存储过程。对于不需要任何输入参数的存储过程,我可以轻松检索复杂查询 但是,我无法返回需要输入参数的存储过程的结果。我尝试在我的C类中传递它,并将其存储在结果中,如下所示: //20 is the value I am passing into my stored procedure IEnumerable<MyClass> result = _db.MyStoredProcedure(20).Select(x => new M
//20 is the value I am passing into my stored procedure
IEnumerable<MyClass> result = _db.MyStoredProcedure(20).Select(x => new MyClass(){....});
return result;
但我无法检索结果,因为“int”不包含“Select”的定义
我相信这是因为我需要在模型浏览器中的复杂类型中有一个结果类型。我可以创建自定义参数,但是,我无法将存储过程中的返回值转换为这些值,因为我无法设置该参数
我注意到在我的存储过程中,它在Database.Store位置下的storageprocedures/Functions文件夹中有一个需要初始化的变量。有没有办法将其设置为要传递的值?我在模型浏览器中检查了该特定ID的属性
或者,也许我想得不对
任何帮助都会很好
提前谢谢。我对这个问题的解决方法非常简单 因此,传递参数的工作方式应该是这样的。在我的问题中,我应该在前面的例子中加上20。问题在于存储过程本身 由于ADO没有内置的方法来设置/传递参数,因此需要手动修改SQL查询,以完成存储过程应该完成的任务。所以我修改了我的存储过程,使用
print result
然后从消息中复制并粘贴存储过程的结果,以便使用我通常传递的参数进行选择。然后,我在模型浏览器中重新编辑函数导入,并点击“获取列信息”,获得我特别想要的复杂结果类型
它起作用了