Entity Framework'e tamamen yeni geldim, bu yüzden mantığım çarpıksa lütfen beni affet/işler zaten işliyor, ama bir uygulama üzerinde çalışıyorum. :Entity Framework - Etkin Olmadan Tüm Çocuk Varlıkları Sil
- Ben Birincil anahtar ile bir tabloda Veli Bilgi depolamak = her
ParentId
içinParentId
- , ben parentId üzerinde bire birçok yabancı anahtar ilişkisi olan bir çocuğun tablosundaki kayıtları binlerce saklamak. bilgi zamankinden (oldukça sık oluyor olabilir) bir ebeveyn için değişirse
Yani, ne benim program var olduğunu yapmak ister eşdeğer gerçekleştirmeniz: çocuğu güncellemeden önce
DELETE FROM ChildTable WHERE ParentId = 'xx'
Aynı ParentId için yeni/güncellenmiş değerler içeren tablo. Gördüğüm kadarıyla
, bunu yapacağını yoludur ya:
gerçek bir SQL komutu- koyun
ctx.Database.ExecuteSqlCommand()
tür kavram - bazı On seviyesini kullanarak , aslında çocuklar öğeleri aracılığıyla döngü ve DB bağlamını güncellemeden önce onları silmek için ayarlayın (ki ben bunu yapmak için tüm bunları yapmak için DB bunları çekti gerekir tahmin ediyorum çünkü büyük ölçüde verimsiz olurdu gibi görünüyor yapmak sadece hepsini silmek içindir. mümkün olan en verimli şekilde EF bunu yapmanın doğru yolu
nedir?
Olası yinelenen http://stackoverflow.com/questions/2519866/how-do-i-delete-multiple-rows-in-entity-framework-without-foreach – Stilgar
@Stilgar, bu işaret için teşekkürler, ben yaptım Bu soruya bakın, ama yine de şaşkınım (belki de ihtiyacım olan şey sadece daha fazla açıklamadır). Bu, tüm çocuk unsurları arasında döngü oluşturmayı gerektirip gerektirmediğine dair ... Bu bölüm benim için hala mantıklı değil… –
Verimlilik konusunda endişeleniyorsunuz sadece bir Depolanmış Prosedür veya ham SQL yazınız. EF bunun için iyi bir destek. – Stilgar