是否可以在MS Entity Framework中查询新添加的对象

有没有办法在Entity Framework中查询或只访问新添加的对象(使用ObjectContext.AddObject方法)? 我的意思是当它尚未使用SaveChanges保存到数据存储时

我知道查询被转换为底层SQL并针对数据存储执行,并且它还没有这个新对象。 但无论如何,我很好奇 – 如果它没有得到支持,也许它在理论上是可能的。 如果不是,开发商如何处理它? 手动跟踪新对象并使用Linq查询对象?

同样的问题也适用于LinqToSql。

在EF中,如果您使用此代码,则您拥有已在上下文中加载的所有实体(包括新添加的实体):

context.ObjectStateManager.GetObjectStateEntries(EntityState.Added | EntityState.Modified | EntityState.Unchanged).Select(o => o.Entity).OfType() 

“同样的问题也适用于LinqToSql。”

对于LINQ-to-SQL,请查看DataContext.GetChangeSet() ; 这有三个单独的集合用于挂起的.Inserts.Updates.Deletes

请注意, ChangeSet是调用GetChangeSet()方法的快照; 您需要重新查询以查看任何其他更改。