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

  • Fr. Eckle Studios

    Fr. Eckle St

    29 Kasım 2006
  • Snazzy Labs

    Snazzy Labs

    9 Aralık 2008
  • TotalSeminarsChannel

    TotalSeminar

    16 Mart 2010