c# - 具有多个结果集的 Entity Framework 5 存储过程

标签 c# entity-framework asp.net-mvc-4 entity-framework-5

我目前正在使用 asp.net mvc 4.5 和 EF5 Beta 2 进行编码,并且我有一个返回多个结果集的存储过程。我找到了 this site它说较新的版本(我正在使用)已经支持多个结果集。

现在我似乎找不到那种支持。由于我对 EF 完全陌生,我希望我没有做错什么。

我的数据库中没有与创建的结果集对应的实体。

最佳答案

核心 EF 库支持多结果集过程。不幸的是,设计者没有——而且还不清楚它是否会在发布时出现。

我也发现文档有点稀疏,特别是对于返回多个实体类型(而不是复杂类型)。幸运的是,手动编辑 EDMX 并不太复杂。我写了一篇关于主题的博客文章......

Entity Framework 5 – Multiple Entity-Typed Result Sets from a Stored Procedure (请注意,我的服务器可能需要几分钟才能启动磁盘,因为没有太多人访问我不起眼的小博客)。

它的简称在 CSDL 部分..

<edmx:ConceptualModels>
  <Schema Namespace="myModel" ...>
    <EntityContainer Name="myModelEntities" ....>
    ......
    <!-- 
     this is what “function import” wrote, that I’m overwriting…         
     FunctionImport Name="MyMARS_Proc" ReturnType="Collection(myModel.Table_A)"/>
     -->
     <FunctionImport Name="MyMARS_Proc" >
        <ReturnType Type="Collection(myModel.Table_A)" EntitySet="Table_As"/>
        <ReturnType Type="Collection(myModel.Table_B)" EntitySet="Table_Bs"/>
     </FunctionImport> 

然后在 MSL(C-S 映射部分)中,您需要...

<edmx:Mappings>
  <Mapping Space="C-S" ....>
    <EntityContainerMapping  ....>

       <FunctionImportMapping FunctionImportName="MyMARS_Proc"
                               FunctionName="myModel.Store.MyMARS_Proc">
            <ResultMapping>
                <EntityTypeMapping  TypeName="myModel.Table_A"/>
            </ResultMapping>
            <ResultMapping>
                <EntityTypeMapping TypeName="myModel.Table_B"/>
            </ResultMapping>
       </FunctionImportMapping>

关于c# - 具有多个结果集的 Entity Framework 5 存储过程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10314032/

相关文章:

c# - 两个 docker 容器之间的 Dotnet SSL 错误

c# - 在 x y 排序中使用变量

asp.net-mvc - 存储库中的多个搜索条件

c# - OpenTK - 如何旋转二维对象

c# - 如何使用 SSIS 组件 (C#) 和 Google.Apis.AnalyticsReporting.v4 ETL 谷歌分析数据

html - 如何在 html razor view mvc4 中增加 TextArea 的大小?

asp.net-mvc-4 - 如何解决Antlr3依赖 hell

ASP.NET MVC CAPTCHA 实现

asp.net-mvc - Linq lambda 空合并可空 int

c# - EF 实体结果为数据库中不为空的列返回空值