因此,我试图在 Entity Framework 中实现具有多个结果集的存储过程。
这一切似乎太简单了。
但是,我没有为我的结果集获得任何行(尽管,看来我确实得到了结果集本身)。
我做了什么:
我的edmx文件(仅相关内容):
<FunctionImport Name="getGlobalReport2">
<ReturnType Type="Collection(MTModel.GlobalReport2)"/>
<ReturnType Type="Collection(MTModel.GlobalReport2)"/>
<ReturnType Type="Collection(MTModel.GlobalReport2)"/>
<Parameter Name="regions" Mode="In" Type="String" />
<Parameter Name="countries" Mode="In" Type="String" />
<Parameter Name="companySizes" Mode="In" Type="String" />
<Parameter Name="products" Mode="In" Type="String" />
</FunctionImport>
<FunctionImportMapping FunctionImportName="getGlobalReport2" FunctionName="MTModel.Store.getGlobalReport2" >
<ResultMapping>
<ComplexTypeMapping TypeName="MTModel.GlobalReport2" />
</ResultMapping>
<ResultMapping>
<ComplexTypeMapping TypeName="MTModel.GlobalReport2" />
</ResultMapping>
<ResultMapping>
<ComplexTypeMapping TypeName="MTModel.GlobalReport2" />
</ResultMapping>
</FunctionImportMapping>
我的代码:
var x = mtEntities.getGlobalReport2(regions, countries, companySizes, products);
Response.Write(x.Count());
var y = x.GetNextResult<GlobalReport2>();
Response.Write(y.Count());
var z = x.GetNextResult<GlobalReport2>();
我已经准备好检查的内容:
调用或应用程序似乎没有问题,只不过没有返回任何行。
有什么建议么?
编辑:
根据您对被覆盖的
edmx
的评论,只有当我从数据库重新生成模型时,才会发生这种情况,而如果我更新它,则不会发生。自从它重新生成模型以来,我别无所求。
最佳答案
您是否不认为应该为创建的复杂类型定义一些属性?例如:
<FunctionImportMapping FunctionImportName="GetGrades"
FunctionName="SchoolModel.Store.GetGrades" >
<ResultMapping>
<ComplexTypeMapping TypeName="SchoolModel.GradeInfo">
<ScalarProperty Name="EnrollmentID" ColumnName="enroll_id"/>
<ScalarProperty Name="CourseID" ColumnName="course_id"/>
<ScalarProperty Name="StudentID" ColumnName="student_id"/>
<ScalarProperty Name="Grade" ColumnName="grade"/>
</ComplexTypeMapping>
</ResultMapping>
</FunctionImportMapping>
也检查this
同样正如Mike在对您的问题的评论中正确指出的那样,如果您以后要更新edmx文件,则如果重新生成该文件,您将迷失于自定义设置。
关于mysql - Entity Framework -具有多个结果集的存储过程-没有行返回,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24250849/