C# EntityFramework在保存更改之前显示实体

C# EntityFramework在保存更改之前显示实体,c#,entity-framework,savechanges,C#,Entity Framework,Savechanges,实体框架ObjectSet及其方法ToList仅显示保存的实体。也就是说,当我打电话的时候 context.AddToCustomers(myNewCust); 然后(不调用SaveChanges) DataGrid不显示新添加的实体(甚至context.Customers.Count()也不包括它) 有没有办法显示这些实体(那些具有EntityState=Added)的实体 提前感谢。查看TryGetObjectStateEntry(EntityKey,ObjectStateEntry)方法

实体框架ObjectSet及其方法ToList仅显示保存的实体。也就是说,当我打电话的时候

context.AddToCustomers(myNewCust);
然后(不调用SaveChanges)

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

有没有办法显示这些实体(那些具有
EntityState=Added
)的实体


提前感谢。

查看TryGetObjectStateEntry(EntityKey,ObjectStateEntry)方法


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

var inserted = context.ObjectStateManager
                      .GetObjectStateEntries(EntityState.Added)
                      .Where(e => !e.IsRelationship)
                      .Select(e => e.Entity)
                      .OfType<Cutomer>();
var inserted=context.ObjectStateManager
.GetObjectStateEntries(EntityState.Add)
.其中(e=>!e.IsRelationship)
.选择(e=>e.Entity)
.of type();

但仅仅通过阅读你的问题,我就对你试图做错事感到震惊。为什么需要将未保存的实体与已检索的实体合并?如果您需要显示未保存的内容,只需将其保存在您自己的单独集合中即可

“为什么需要将未保存的实体与已检索的实体相结合?”也许您的表单中有一个实体,该实体的相关子实体显示在列表中-您希望向列表中添加新的子实体,但仅在保存父实体时才保留子实体。
var inserted = context.ObjectStateManager
                      .GetObjectStateEntries(EntityState.Added)
                      .Where(e => !e.IsRelationship)
                      .Select(e => e.Entity)
                      .OfType<Cutomer>();