gpt4 book ai didi

mysql - Entity Framework - 具有多个结果集的存储过程 - 没有行返回

转载 作者:可可西里 更新时间:2023-11-01 07:06:14 25 4
gpt4 key购买 nike

所以,我试图在 Entity Framework 中实现一个包含多个结果集的存储过程。这一切似乎太容易了。但是,我的结果集没有得到任何行(尽管如此,我似乎确实得到了结果集)。

我做了什么:

  1. 创建了返回 3 个结果集的存储过程
  2. 创建了表示返回值的复杂类型
  3. 根据 Stored Procedures with Multiple Result Sets 手动编辑 edmx 文件
  4. 3 失败并尝试了同一页面的代码版本,仍然没有返回行。
  5. 将代码还原为 3。

我的 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>();

我已经检查过的内容:

  1. 已检查服务器是否根据 How can I view live MySQL queries? 收到请求
  2. 运行我从服务器获取的查询并确保它返回结果集和行
  3. 调试应用程序以查看我在途中没有遗漏任何异常

调用或应用程序似乎没有问题,只是没有返回任何行。有什么建议吗?

编辑:根据您对 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com