2008-11-28 19 views
5

'de eklenen yeni nesneye sorgu Varlık Çerçevesinde sorgulanan veya yeni eklenen nesneye (ObjectContext.AddObject yöntemini kullanarak) erişmenin bir yolu var mı? SaveChangesMS Entity Framework

'u kullanarak henüz veri deposuna kaydedilmediğinde, sorguların temel SQL'e çevrildiğini ve veri deposuna karşı çalıştırıldığını ve henüz bu yeni nesneye sahip olmadığını anlıyorum. Ama neyse, merak ediyorum - eğer resmi olarak desteklenmiyorsa, belki de teoride mümkündür. Değilse, geliştirici bununla nasıl başa çıkabilir? Yeni nesneleri manuel olarak takip edin ve bunları nesneler için Linq kullanarak sorgulayın.

Aynı soru LinqToSql için de geçerlidir. Bu kodu kullanırsanız, tüm (yeni eklenen olanlar dahil) zaten bağlamda yüklenen varlıklara sahip EF yılında

cevap

7

:

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

Teşekkürler, EF ile çalışmıyorum, ama bu umarım faydalıdır. – Vladekk

2

"Aynı soru da LinqToSQL için de geçerlidir."

LINQ-to-SQL için DataContext.GetChangeSet(); Bunun için 3 separate collections sahip .Inserts, .Updates ve ChangeSet GetChangeSet() yöntem çağrıldığında bir anlık olduğu .Deletes

Not bekletme Ek değişiklikleri görmek için yeniden sorgulamanız gerekiyor.