我按照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
中定义的列映射?
答案 0 :(得分:0)
我认为ResultMapping不会重用EntitySet映射中的映射。似乎(我不是100%肯定)如果你没有指定属性&lt; - &gt;列映射EF将尝试将属性名称用作存储过程返回的结果集中的列名。