我有一个 Entity Framework 项目设置。它我有四个表和三个实体(“A”、“B”和“C”)。 A 和 B 之间、A 和 C 之间是 1:n 关系,B 和 C 之间是 n:n 关系。
我使用以下代码尝试添加新的“B”实体:
A t = null;
if (this.MyA == null)
{
t = new A()
{
EntityKey = this.MyAReference.EntityKey,
AId = (Guid)this.MyAReference.EntityKey.EntityKeyValues[0].Value
};
}
else
{
t = this.MyA;
}
this.MyA = null;
context.Attach(t);
this.MyA = t;
“B”对象(“this”)具有“C”对象的子集合。这些“C”对象已存在于数据库中,但与新对象无关(显然)。当我调用“SaveChanges()”时,它会引发异常,因为它尝试将所有子“C”对象添加到数据库中的新对象。
如何让它只在“Table_JoinBC”中创建引用,而不尝试重新创建“C”对象?
感谢您的帮助。
最佳答案
如果使用 stub entities 会更容易
您声明您想要添加一个新的 B 对象。要添加 B 对象,您需要一个 A 对象
以下是使用 stub 实体的示例:
A myAObject = new A { A_Id = 5 };
Context.AttachTo("Aes", myAObject);
B myBObject = new B { B_ID = 6, A = myAObject);
Context.AddToBes(myBObject)
Context.SaveChanges();
关于entity-framework - 在 Entity Framework 中创建新对象时如何添加子关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3971419/