2013-10-21 43 views
0

我正在使用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

添加包括方法調用你的初始查詢:

var unpostedInvoices = db.Invoices.Include("User").Where((o => (o.PostStatus == (int)PostStatus.UnPosted)).ToList(); 
相關問題