9

Entity Framework ObjectSet 及其方法 ToList 显示刚刚保存的实体。这意味着,当我打电话时

context.AddToCustomers(myNewCust);

然后(不调用 SaveChanges)

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

DataGrid 不显示新添加的实体(甚至context.Customers.Count()不包括它)。

有什么方法可以显示这些实体(带有 的实体EntityState = Added)?

提前致谢。

4

2 回答 2

9

我认为您可以通过调用以下内容来获取未保存的添加实体:

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

但是,仅通过阅读您的问题,我就害怕您正在尝试做错事。为什么需要将未保存的实体与检索的实体结合起来?如果您需要显示未保存的内容,您只需将其保存在您自己的单独集合中即可。

于 2011-03-28T08:23:48.813 回答
2

查看 TryGetObjectStateEntry(EntityKey, ObjectStateEntry) 方法

http://msdn.microsoft.com/en-us/library/system.data.objects.objectstatemanager.aspx

于 2011-03-28T08:10:53.247 回答