2012-01-31 18 views

cevap

19

dbContext.SomeEntitySet.Add(entityInstance);'u kullandığınızda, bununla ilgili tüm varlıkların/koleksiyonların durumu eklenirken, dbContext.Entry(entityInstance).State = EntityState.Added; tüm ilgili öğeleri/koleksiyonları bağlama ekler, ancak bunları değiştirilmemiş olarak bırakır. Eğer yaratmaya çalıştığımız varlık bir ilgili varlığı vardır (ve değeri boş değil) Eğer o çocuk varlık için yeni bir nesne oluşturur ekle kullandığınızda, eğer Yani iken başka bir yol ile böyle olmaz.

+0

ve? –

+0

Sana dbContext.Entry (entityInstance) .State atıfta inanıyoruz, bu durumda sanırım evet Varlık yöntemi yalnızca dışarı onun durumuna (değiştirilmemiş) değişen grafiğe ekler ve sonra el yalnızca bu durumunu değiştirmek gibi varlık, ilgili olanları değil. – fbiagi

+0

Diğer soruda @MikeBrind'den yorum gördünüz mü? – Colin

1

Sadece ilgili kişiler/navigasyon özellikleri olan, EF 6 ile bu test ve her iki durumda da oluşturulan nesneler aynıydı. (Tüm ebeveyn ve ilgili alt nesneler oluşturuldu.) Fark ettiğim tek fark, Ekle'nin 2 katına kadar daha hızlı olduğuydu. Verilerimin her biri DB'ye yazılan toplam 6000 nesne için 5 alt nesneye sahip 1000 üst nesneye sahipti. . Bu da EntityState.Deleted & EntityState.Changed için geçerlidir

İlgili konular