【发布时间】:2012-10-02 13:22:18
【问题描述】:
我按照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>
此实体作为存储的 proc 结果集的一部分返回 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? 中定义的列映射?
【问题讨论】:
-
为什么不去掉 resharper 或者至少去掉它的任意规则呢?
-
我喜欢 CamelCase 上面使用下划线。不幸的是,列名中包含数据库下划线。
标签: entity-framework entity-framework-5