使用fluentAPI(EF)发生参照完整性约束违规

时间:2016-07-21 13:35:30

标签: c# wpf entity-framework

在WPF项目中使用EF。

我有两个实体如下:

public class Entity1
{
...
public virtual Entity2 Entity2 { get; set; }
...
}


public class Entity2
{
...
public virtual Entity1 Entity1 { get; set; }
...
}

以这种方式设置关联:

modelBuilder.Entity<Entity1>().HasRequired(r => r.Entity2).WithOptional(s => s.entity1);

这是我的样本:

//TESTCODE
Entity1 entity1=new Entity1(){Name="test"};
Entity2 entity2 = new Entity2();
entity1.Entity2=Entity2;
Entity2 entity2=new Entity2();

Context context = new Context();
context.Entities1.Add(entity1);
context.SaveChanges();//OK


#regionpart1
context.Entities2.Remove(entity1.Entity2);
context.SaveChanges();//NEEDED!!!
#endregion

entity1.Entity2=entity2;
entity1.Entity2.entity1=entity1;
context.SaveChanges(); //halts without region part1!!

如果我不删除part1区域3行,为什么会停止?

我想我错过了一个方法来管理流畅的API部分,这样我就不需要在设置新值之前显式删除旧的entity1.Entity2对象了吗?

我得到的例外是:  {“发生了参照完整性约束违规:关系一端的'T_Entity2.Id'的属性值与属性值不匹配  “T_Entity1.Id”在另一端。“

提前谢谢,我希望这很清楚。

0 个答案:

没有答案