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
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.
Varlık çerçevesi etmeniz() sorgu Vardı...
Birden fazla alanı-Sözdizimi yardım ET...
Birden fazla YERDE Etmeniz fıkra...
Nasıl ve HTML ve PHP ile birden fazla ...
Android aynı yoğunluğu ile birden fazl...