是否可以在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()
方法的快照; 您需要重新查询以查看任何其他更改。