我想从C#代码调用存储过程。这就是我尝试的方式:
var result = db.ExecuteStoreCommand("TaskSchedule", new object[] { new ObjectParameter("treatmentDateFrom", dateTime)});
但是我收到以下错误:
从对象类型System.Data.Objects.ObjectParameter到已知的托管提供程序本机不存在映射 类型。
你能告诉我我做错了什么吗?
我看过很多关于从SP获取值的帖子,但我想将我的参数传递给SP。我正在使用EF4。
提前感谢您的帮助。
答案 0 :(得分:1)
通过将SP映射到ObjectContext,可以非常轻松地通过EF访问存储过程。
在EDMX设计器中,您可以导入存储过程并将结果映射到新类型或现有类型。在此之后,SP成为对象上下文中的强类型函数。
Here is some documentation关于导入SP' s。
如果您不想导入SP并使用ExecuteStoreCommand,则需要确保在命令文本中指定参数,并且它们的类型为SqlParameter,且名称和值正确。