EF5:存储过程的多个结果集

时间:2012-10-02 13:22:19

标签: entity-framework entity-framework-5

我按照this文章从存储过程中检索多个实体集。

我已经更改了我的实体的列映射,因此它们通过了Resharper。 我是否必须在结果映射中重写列映射?

例如,我有以下EntitySetMapping:

      <EntitySetMapping Name="IrmaObjectConfiguraties">
        <EntityTypeMapping TypeName="IrmaModel.IrmaObjectConfiguratie">
          <MappingFragment StoreEntitySet="IrmaObjectConfiguratie">
            <ScalarProperty Name="Gid" ColumnName="GID" />
            <ScalarProperty Name="IrmaObjectGid" ColumnName="IrmaObject_GID" />
            <ScalarProperty Name="IrmaConfiguratieGid" ColumnName="IrmaConfiguratie_GID" />
          </MappingFragment>
        </EntityTypeMapping>
      </EntitySetMapping>

此实体作为存储过程结果集的一部分返回bij:

        <ResultMapping>
          <EntityTypeMapping TypeName="IrmaModel.IrmaObjectConfiguratie">
            <!--ScalarProperty Name="Gid" ColumnName="Gid" />
            <ScalarProperty Name="IrmaObjectGid" ColumnName="IrmaObject_Gid" />
            <ScalarProperty Name="IrmaConfiguratieGid" ColumnName="IrmaConfiguratie_Gid" /-->
          </EntityTypeMapping>
        </ResultMapping>

当我删除备注时,导入函数的执行正常,但是当没有列映射时,我检索到以下错误:

  

数据阅读器与指定的内容不兼容   'IrmaModel.IrmaObjectConfiguratie'。该类型的成员,   'IrmaObjectGid',数据中没有对应的列   具有相同名称的读者。

作为一种解决方法,我可以再次定义所有列映射,但是也可以使用EntitySetMapping中定义的列映射?

1 个答案:

答案 0 :(得分:0)

我认为ResultMapping不会重用EntitySet映射中的映射。似乎(我不是100%肯定)如果你没有指定属性&lt; - &gt;列映射EF将尝试将属性名称用作存储过程返回的结果集中的列名。