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

  • Dave Wallace

    Dave Wallace

    27 Kasım 2007
  • Eric Enge

    Eric Enge

    2 Kasım 2009
  • steven johns

    steven johns

    11 Mart 2011