为什么在更新实体时需要重置所需的导航属性
本文关键字:属性 导航 更新 实体 为什么 | 更新日期: 2023-09-27 18:36:16
我正在使用EF5
WinForms,并有一个发票实体列表。我只想更新发票的一个属性,但是如果我不同时更新导航属性,则在 SaveChanges 上出现错误。
为什么?
var unpostedInvoices = db.Invoices.Where( o => (o.PostStatus ==
(int)PostStatus.UnPosted) ).ToList();
foreach (invoice inv in unpostedInvoices)
{
inv.PostStatus = (int)PostStatus.Posted)
inv.User = inv.User; // if this line is not put in I get an error: "The user field is required"
}
db.SaveChanges
将 Include 方法调用添加到初始查询:
var unpostedInvoices = db.Invoices.Include("User").Where((o => (o.PostStatus == (int)PostStatus.UnPosted) ).ToList();