SORU
23 Kasım 2010, Salı


Insert Birçok Varlık Çerçevesi için Birçok Güncelleme/. Bunu nasıl yapabilirim?

Ve yeni EF4 kullanıyorum. Benim projede pek çok örnek var ve eklemek veya güncelleştirmek için nasıl çalışmak için görünmüyor. Küçük bir proje sadece kodlanmış, nasıl olacağını görmek için yapı var.

3 tablolar var sanırım

  1. Sınıf :-[Null] Classıd
  2. Öğrenci :-Ad-Soyad StudentİD
  3. StudentClass :-Classıd StudentİD

Tüm ilişki ekleme ve StudentClass görünmez olduğunu fark etmişsinizdir model tarayıcı ile model güncelleştirilmiş sonra, bu varsayılan davranış gibi görünüyor.

Şimdi bir Ekleme ve Güncelleme de yapmak istiyorum. Bunu nasıl yapıyorsun? Herhangi bir örnek indirebilirsiniz numune veya bağlantı kodu veya 5 dakika ayırabilir?

CEVAP
23 Kasım 2010, Salı


Varlık açısından (veya nesneleri) Students toplama ve Classes koleksiyonu olan Student bir nesne olan Class bir nesne var. StudentClass tablo sadece Kimlikleri ve ekstra bilgi içerdiğinden, EF katılmadan tablo için bir varlık oluşturmaz. Bu doğru bir davranış değildir ve böyle bir şey bekliyor.

Ekleme veya güncelleştirme yaparken, nesneleri açısından düşünmeye çalış. E. g. eğer eklemek istediğiniz bir sınıftan iki öğrenci, oluştur Class nesne Student nesneleri Ekle öğrencilere sınıf Students toplama Ekle Class nesne bağlama ve Ara SaveChanges:

using (var context = new YourContext())
{
    var mathClass = new Class { Name = "Math" };
    mathClass.Students.Add(new Student { Name = "Alice" });
    mathClass.Students.Add(new Student { Name = "Bob" });

    context.AddToClasses(mathClass);
    context.SaveChanges();
}

Bu Class tablosunda bir giriş, Student tablosunda iki giriş ve StudentClass tablo onları birbirine bağlayan iki girdilerini oluşturur.

Temelde güncellemeler için aynı şeyi. Sadece veri getirmek ve koleksiyon nesneleri ekleyerek ve grafik değiştir SaveChanges Ara. Ayrıntılar için kontrol edin this similar question.

Edit:

Yorumunuz göre, Class ve eklemek yeni bir iki mevcut Students eklemek gerekir:

using (var context = new YourContext())
{
    var mathClass= new Class { Name = "Math" };
    Student student1 = context.Students.FirstOrDefault(s => s.Name == "Alice");
    Student student2 = context.Students.FirstOrDefault(s => s.Name == "Bob");
    mathClass.Students.Add(student1);
    mathClass.Students.Add(student2);

    context.AddToClasses(mathClass);
    context.SaveChanges();
}

Ondan beri her ikisi de öğrenciler zaten veritabanında olmayacaklar eklenen, ama o zamandan beri onlar şimdi Students koleksiyon Class, iki giriş olacak takılı içine StudentClass tablo.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Numberphile

    Numberphile

    15 EYLÜL 2011
  • snookie77

    snookie77

    2 Mart 2006
  • The Exploiteers

    The Exploite

    4 Ocak 2011