给定两个实体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有一个Base类BaseOperation和一个派生类ProcessOperation ......
感谢您的帮助!
答案 0 :(得分:1)
我们解决了这个问题。
我们有一些正在运行的Navigationproperties。
我们删除了它们,现在一切正常!