两个实体映射到同一行



我在实体框架中的数据库第一个模型上收到以下错误:

错误3032:从第3434行开始映射片段的问题, 4312:EntityTypes模型。 桌上的同一行。映射条件可用于 区分这些类型的行映射到。

虽然我已经为这些模型添加了条件:

<EntityTypeMapping TypeName="IsTypeOf(Model.Student)">
  <MappingFragment StoreEntitySet="Attendee">
    <ScalarProperty Name="Id" ColumnName="atnId" />
    <Condition ColumnName="atnTypeId" Value="1" />
  </MappingFragment>
</EntityTypeMapping>

<EntityTypeMapping  TypeName="IsTypeOf(Model.Docent)">
  <MappingFragment StoreEntitySet="Attendee">
    <ScalarProperty Name="AvailabilityApprovedByType" ColumnName="atnAvailabilityApprovedByAttId" />
    <ScalarProperty Name="Id" ColumnName="atnId" />
    <Condition ColumnName="atnTypeId" Value="2" />
  </MappingFragment>
</EntityTypeMapping>

它们是一个更复杂的层次结构,可能是问题所在。但是我不确定如何进行。这是一个层次结构:

Attendee                (Abstract)
  -> Facility           (Type = 3)
  -> AttendeeCollection (Abstract)
      -> Team           (Type = 4)
      -> Group          (Type = 5)
  -> Person             (Abstract)
      -> Student        (Type = 1)
      -> Docent         (Type = 2)

我弄清楚了这个问题。该人实体具有映射标量属性和关联。问题的关联。因为它们可能是两种类型。我无法为他们写作,因为它们可以映射到两个属性。因此,我完全删除了人类类的标量属性和表映射。

之后,我在Docent EN学生课上实现了这些标量属性的私人版本。并通过部分实施暴露它们。我将它们添加到人类班级中的抽象。

我希望这很清楚并为其他人提供帮助。可能有人可以写下来更清晰。

相关内容

  • 没有找到相关文章

最新更新