SORU
2 NİSAN 2013, Salı


EF ETMENİZ birden fazla ve iç içe geçmiş varlıkları vardır

Tamam, ben tri-tesviye varlıklar aşağıdaki hiyerarşi ile: Ders ->- ^Modülü . Bölüm

Burada özgün EF ETMENİZ deyimi:

Course course = db.Courses
                .Include(i => i.Modules.Select(s => s.Chapters))
                .Single(x => x.Id == id); 

Şimdi, başka bir varlık ile ilişkili olan Laboratuar aradı eklemek istiyorum.

Nasıl Lab varlık vardır?

Aşağıdaki denedim ama işe yaramadı:

Course course = db.Courses
                .Include(i => i.Modules.Select(s => s.Chapters) && i.Lab)
                .Single(x => x.Id == id); 

2. Varlık da dahil olmak üzere herhangi bir fikir?

Tavsiye veya bilgi herhangi bir parça son derece mutluluk duyacağız. Teşekkürler!

CEVAP
2 NİSAN 2013, Salı


Include başka bir yerde denedin:

Course course = db.Courses
                .Include(i => i.Modules.Select(s => s.Chapters))
                .Include(i => i.Lab)
                .Single(x => x.Id == id);

Çözüm Include bir boolean operatörü almaz çünkü başarısız olur

Include(i => i.Modules.Select(s => s.Chapters) &&          i.Lab)
                           ^^^                  ^             ^ 
                          list           bool operator    other list

Güncelleme Daha fazlasını öğrenmek için, LinqPad yükleme ve örneklerine bak. Seri ve Lambda tanımak için en hızlı yol olduğunu düşünüyorum.

Bir başlangıç olarak Select Include arasındaki farkı bir Select ile bu kararnegeri dönmek için (aka projeksiyon. Bu bir Vardırİstekli Yükleniyorişlevi, diğer tablolardan veri eklemek istediğiniz Varlık Çerçevesi söyler.

Sözdizimi dize de olabilir Vardır. Bu gibi:

           db.Courses
            .Include("Module.Chapter")
            .Include("Lab")
            .Single(x => x.Id == id);

Ama LinqPad örnekleri de bu daha iyi açıklıyor.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Chaoticmoogle

    Chaoticmoogl

    13 ŞUBAT 2006
  • grickle

    grickle

    22 AĞUSTOS 2006
  • Titan Lee Hai

    Titan Lee Ha

    14 Temmuz 2008