Nếu tôi có một truy vấn mà trông như thế này:Entity Framework bao gồm đâu
var forms = repo.GetForms().Where(f => f.SubForms.Any(sf => sf.Classes.Any(c => c.TermId == termId)));
Từ đây bạn có thể thấy sơ đồ của tôi là như sau:
SubForm
có nhiều Class
trong đó có nhiều Term
.
Những gì tôi muốn:
Tất cả SubForms
với Classes
của họ Trong một đặc biệt Term
.
Điều đang xảy ra bây giờ là tôi nhận được tất cả SubForm
có bất kỳ Class
nào trong một số Term
cụ thể. Điều đó có nghĩa là SubForm
quay lại với TẤT CẢ trẻ em Class
và không chỉ những cái có liên quan đến Term
.
Ví dụ: Tôi có 2 thuật ngữ, một biểu mẫu con với 2 lớp trong mỗi học kỳ. Truy vấn này mang về 4 lớp thay vì 2 trong thuật ngữ cụ thể đó.
Có bất kỳ Include('Expression')
nào tôi có thể sử dụng để nói rằng tôi chỉ muốn bao gồm tất cả các lớp dựa trên điều kiện không? Hoặc là truy vấn của tôi sai?
'Bất kỳ' đầu tiên được coi là 'Where', đúng không? Nếu không, truy vấn của bạn sẽ chỉ trả về một 'bool', nói rằng" Có bất kỳ biểu mẫu con nào có các lớp với các thuật ngữ với termId đã cho, có hoặc không? " – Slauma
@ Slauma Xin lỗi, đó cũng là một cấp độ khác trên biểu thức đó, tôi sẽ chỉnh sửa nó, xin lỗi –