5

我是Entity Framework在示例ASP.NET/MVC 3.0 VS2010项目中工作的新手。我已将两个存储过程作为函数导入导入,并在此过程中为每个存储过程创建了一个复杂的数据类型。

我正在尝试运行以下 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'

我究竟做错了什么?如何以复杂的数据类型正确存储存储过程的结果?

4

2 回答 2

2

您可以使用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;}

更多信息可在此处获得。

于 2012-11-03T19:20:56.650 回答
1

尝试改变这个:

result = context.StoredProc(param1, param2, param3);

对此:

result = (ComplexDataType) context.StoredProc(param1, param2, param3);
于 2012-11-03T19:16:58.220 回答