我刚开始在示例 ASP.NET/MVC 3.0 VS2010
项目中使用 Entity Framework
。我已将两个存储过程作为 Function Imports 导入,并在这样做时为每个存储过程创建了一个复杂的数据类型。
我正在尝试运行以下 C# 代码:
public ComplexDataType RunStoredProc()
{
var context = new DbEntities();
int param1 = 370;
int param2 = -1;
string param3 = "Current";
ComplexDataType result = new ComplexDataType;
result = context.StoredProc(param1, param2, param3);
return result;
}
我收到错误:
Cannot implicitly convert data type
System.Data.Objects.ObjectResult(ComplexDataType) to 'ComplexDataType'
我做错了什么?如何以复杂数据类型正确存储存储过程的结果?
最佳答案
您可以使用 DbSet.SqlQuery
方法从存储过程中获取结果。
int param1=12;
int param2=53;
var results=context.ComplexDataTypes.SqlQuery.
("dbo.YourSPNameHere @p0 @p1", param1,param2).Single();
假设您有一个这样的集合定义了您的 DbContext 类。
public DbSet<ComplexDataType> ComplexDataTypes { set;get;}
更多信息可用here .
关于c# - 使用复杂数据类型在 EF 中调用存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13212338/