2

给定两个实体 ProcessTemplateOperation 和 ProcessTemplateMetaInformation 的关系为 1 到 0..1

当我添加一个具有 ProcessTemplateMetaInformation 的 ProcessTemplateOperation 时,我在 Context.ApplyChanges 处收到以下错误(在 EF 中它位于 AddHelper.AddAllEntities: context.AddObject 中)

违反了多重性约束。关系“...FK_ProcessTemplateOperation_MetaInformation”的角色“ProcessTemplateOperation”具有多重性 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 ...

谢谢你的帮助!

4

1 回答 1

1

我们解决了这个问题。

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

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

于 2012-06-14T10:01:16.770 回答