在实体框架中,我有两个实体:
public class Parent
{
public int Id { get; set; }
public string Name { get; set; }
public Child Child { get; set; }
}
public class Child
{
public int Id { get; set; }
public string Name { get; set; }
}
现在数据库中有两个Child
>
Id: 1, Name: "First"
Id: 2, Name: "Second"
我还有一个Parent
,具有以下属性:
Id: 1, Name: "Parent", Child_Id: 1
现在我正在尝试像这样更改外键:
using (var c = new Context())
{
var parent = c.Parents.First(record => record.Id == 1);
parent.Child = new Child(2, "Second")
c.SaveChanges();
}
但是它给出了错误:
无法定义两个对象之间的关系,因为 它们被附加到不同的ObjectContext对象上。
请说明原因,并给出实现目标的解决方案。
答案 0 :(得分:0)
问题是,我在这样的不同上下文中创建Child:
parent.Child = new Child(2, "Second")
相反,我必须像这样从给定的上下文中获取对象:
parent.Child = c.Childs.Find(2);