【问题标题】:"Multiplicity constraint violated" when there is an entity存在实体时“违反多重性约束”
【发布时间】: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


    【解决方案1】:

    我们解决了这个问题。

    我们有一些导航属性在一个圆圈中运行。

    我们删除了它们,现在一切正常!

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-11-30
    • 1970-01-01
    • 1970-01-01
    • 2016-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多