实体框架ObjectSet及其方法ToList显示刚刚保存的实体。这意味着,当我打电话
context.AddToCustomers(myNewCust);
然后(不调用SaveChanges)
myDataGrid.DataContext = context.Customers.ToList();
DataGrid不会显示新添加的实体(即使context.Customers.Count()
也不包含它)。
有没有办法显示这些实体(那些EntityState = Added
)?
提前致谢。
答案 0 :(得分:9)
我认为您可以通过调用以下内容来获取未保存的已添加实体:
var inserted = context.ObjectStateManager
.GetObjectStateEntries(EntityState.Added)
.Where(e => !e.IsRelationship)
.Select(e => e.Entity)
.OfType<Cutomer>();
但只是通过阅读你的问题,我很害怕你正试图做错事。为什么需要将未保存的实体与检索结合起来?如果您需要显示未保存的内容,您应该将其保存在您自己的单独集合中。
答案 1 :(得分:2)
查看TryGetObjectStateEntry(EntityKey,ObjectStateEntry)方法
http://msdn.microsoft.com/en-us/library/system.data.objects.objectstatemanager.aspx