2011-03-28 50 views
9

實體框架ObjectSet及其方法ToList只顯示保存的實體。這意味着,當我打電話EntityFramework在保存更改前顯示實體

context.AddToCustomers(myNewCust); 

,然後(不調用的SaveChanges)

myDataGrid.DataContext = context.Customers.ToList(); 

DataGrid中不顯示新添加的實體(甚至context.Customers.Count()不包括它)。

有什麼辦法可以顯示這些實體(EntityState = Added)?

在此先感謝。

回答

8

我想你可以通過調用類似拿到得救補充實體:通過閱讀你的問題

var inserted = context.ObjectStateManager 
         .GetObjectStateEntries(EntityState.Added) 
         .Where(e => !e.IsRelationship) 
         .Select(e => e.Entity) 
         .OfType<Cutomer>(); 

但是,我很害怕你想做錯事。爲什麼你需要將未保存的實體與檢索結合起來?如果您需要顯示未保存的內容,您應該將其保存在您自己的單獨收藏中。

+0

「爲什麼你需要將未保存的實體與檢索到的結合起來?」也許你有一個表單中的相關子實體顯示的實體 - 你想添加新的子項到列表中,但只有當他們保存父實體時堅持子項。 – markmnl 2012-11-09 01:50:04

相關問題