Entity framework EF5:来自存储过程的多个结果集

Entity framework EF5:来自存储过程的多个结果集,entity-framework,entity-framework-5,Entity Framework,Entity Framework 5,我跟随文章从存储过程中检索多个实体集 我修改了实体的列映射,使它们通过Resharper。 我必须重写结果映射中的列映射吗 例如,我有以下EntitySetMapping: <EntitySetMapping Name="IrmaObjectConfiguraties"> <EntityTypeMapping TypeName="IrmaModel.IrmaObjectConfiguratie"> <MappingFr

我跟随文章从存储过程中检索多个实体集

我修改了实体的列映射,使它们通过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

中定义的列映射。我认为ResultMapping不会重复使用EntitySet映射中的映射。似乎(我这里不是100%肯定)如果不指定属性列映射,EF将尝试在存储过程返回的结果集中使用属性名作为列名。

为什么不放弃resharper或至少它的仲裁规则呢?我喜欢使用下划线以上的CamelCase。不幸的是,列名中包含数据库下划线。只要存储过程返回的列名与实体属性名匹配,就不需要添加映射。但是,如果映射与实体映射定义中的映射相同,则需要通过结果集映射添加相同的映射。如果您可以通过指定一个额外的属性(如PropertyMapping=EntityMapping)来重用实体映射,那就太好了。我认为目前不可能这样做。