Nasıl bir DbSet tüm öğeleri kaldırmak gerekir. | Netgez.com
SORU
4 Mayıs 2012, Cuma


Nasıl bir DbSet tüm öğeleri kaldırmak gerekir.

Bir sistemdeki tüm öğeleri kaldırmak için en iyi yolu nedir.Veri.Varlık.DbSet, Varlık Çerçevesi 4.3 ile?

CEVAP
4 Mayıs 2012, Cuma


dbContext.Database.ExecuteSqlCommand("delete from MyTable");

(Şaka yapmıyorum.)

Sorun EF herhangi bir toplu iş komutları desteklemiyor ve bir dizi doğrudan VİD kullanarak bütün objeleri silmek için tek yol olacaktır

foreach (var entity in dbContext.MyEntities)
    dbContext.MyEntities.Remove(entity);
dbContext.SaveChanges();

Ya da belki litte biraz dolu varlıklar yüklenmesini önlemek için daha ucuz:

foreach (var id in dbContext.MyEntities.Select(e => e.Id))
{
    var entity = new MyEntity { Id = id };
    dbContext.MyEntities.Attach(entity);
    dbContext.MyEntities.Remove(entity);
}
dbContext.SaveChanges();

Ama her iki durumda da yük vartümvarlıkları yatümanahtar özellikleri ve varlıkları kaldırmak kümesinden tek tek. Ayrıca zaman sana haber SaveChanges EF gönderecek n (=sayı varlıklar set) DELETE deyimleri için veritabanına da idam tek tek DB (tek bir hareket).

Yani, doğrudan SQL sadece tek bir DELETE deyimi ihtiyaç olarak bu amaç için açıkça tercih edilir.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ASUS North America

    ASUS North A

    12 AÄžUSTOS 2008
  • FUNKER530 - Veteran Community & Combat Footage

    FUNKER530 -

    25 Ocak 2007
  • Rozetked | Обзоры

    Rozetked | Ð

    5 AÄžUSTOS 2011