【发布时间】:2011-11-11 19:54:24
【问题描述】:
我有一个 POCO A 实体引用了一个 B 实体,比如说 b。我希望A 引用一个不同的现有B 实体,比如说bb。
这些步骤:
var b = // get existing b from somewhere out-of-context
var a = new A { B = b }
dbcontext.Set<B>.Attach(a.B);
dbcontext.Set<A>.Add(a);
context.SaveChanges();
按预期为a 生成插入语句,并将B_ID 外键正确设置为b 的主键ID。这些后续步骤:
var bb = // get existing bb from somewhere out-of-context
a.B = bb;
differentdbcontext.Set<B>.Attach(a.B);
differentdbcontext.Set<A>.Attach(a);
differentdbcontext.Entry(a).State = EntityState.Modified;
differentdbcontext.SaveChanges();
不会改变持久化的数据。更新语句不包括预期的set B_ID = ...。
我做错了一些简单的事情,因为我以前也遇到过类似的情况。
【问题讨论】:
标签: c# entity-framework ef-code-first foreign-key-relationship