我正在使用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
答案 0 :(得分:1)
将Include方法调用添加到初始查询中:
var unpostedInvoices = db.Invoices.Include("User").Where((o => (o.PostStatus == (int)PostStatus.UnPosted) ).ToList();