【发布时间】:2012-06-14 18:01:16
【问题描述】:
给定两个实体 ProcessTemplateOperation 和 ProcessTemplateMetaInformation 的关系为 1 到 0..1
当我添加一个具有 ProcessTemplateMetaInformation 的 ProcessTemplateOperation 时,我在 Context.ApplyChanges 中收到以下错误(在 EF 中它位于 AddHelper.AddAllEntities: context.AddObject 中)
违反了多重性约束。关系的角色“ProcessTemplateOperation” '...FK_ProcessTemplateOperation_MetaInformation' 具有多重性 1 或 0..1。
停留在EntityFramework代码中的调试器说Operation有一个Metainformation,所以不会中途丢失。
RelationShip 的定义是
<AssociationSet Name="FK_ProcessTemplateOperation_MetaInformation" Association="FireStartDBModel.Store.FK_ProcessTemplateOperation_MetaInformation">
<End Role="ProcessTemplateOperation" EntitySet="ProcessTemplateOperation" />
<End Role="ProcessTemplateMetaInformation" EntitySet="ProcessTemplateMetaInformation" />
</AssociationSet>
<Association Name="FK_ProcessTemplateOperation_MetaInformation">
<End Role="ProcessTemplateOperation" Type="FireStartDBModel.Store.ProcessTemplateOperation" Multiplicity="1">
<OnDelete Action="Cascade" />
</End>
<End Role="ProcessTemplateMetaInformation" Type="FireStartDBModel.Store.ProcessTemplateMetaInformation" Multiplicity="0..1" />
<ReferentialConstraint>
<Principal Role="ProcessTemplateOperation">
<PropertyRef Name="Id" />
</Principal>
<Dependent Role="ProcessTemplateMetaInformation">
<PropertyRef Name="Id" />
</Dependent>
</ReferentialConstraint>
</Association>
<AssociationSet Name="FK_ProcessTemplateOperation_MetaInformation" Association="FireStartDBModel.FK_ProcessTemplateOperation_MetaInformation">
<End Role="ProcessTemplateOperation" EntitySet="BaseOperation" />
<End Role="ProcessTemplateMetaInformation" EntitySet="BaseMetaInformation" />
</AssociationSet>
ProcessTemplateOperation 有一个 NavigationProperty,但 ProcessTemplateMetaInformation 上没有 Navigation 属性。
我们正在使用 TPC,而 ProcessTemplateOperation 有一个基类 BaseOperation 和一个派生类 ProcessOperation...
感谢您的帮助!
【问题讨论】:
标签: entity-framework