У меня есть следующий запрос EF:
Checklist checklist = await context.Checklist.Where(c => c.CHECKLIST_ID == id)
.Include("Employee").Include("EmployeeArchive").Include("ChecklistResponses")
.Include("ChecklistComments").Include("ChecklistResponses.ChecklistQuestion.ChecklistGroup")
.Include("ChecklistResponses.ChecklistQuestion")
.Include("ChecklistResponses.Employee").FirstAsync();
Я хочу создать предложение where для сущности ChecklistQuestion, но оно имеет 3 уровня глубины, и кажется, что я не могу встроить его в предложение Where, так как стоит. ChecklistQuestion является отношением «один ко многим» с ChecklistResponses.
То, что я получаю, - это контрольный список для одного объекта со всеми связанными объектами. ChecklistResponses будет иметь несколько строк. Я пытаюсь ограничить ChecklistResponses значением ChecklistQuestion.GROUP_ID! = 4.
ОБНОВЛЕНИЕ: По мнению Microsoft, невозможно фильтровать объекты с помощью Включить с помощью обычной Entity Framework. https://docs.microsoft.com/en-us/ef/ef6/querying/related-data?redirectedfrom=MSDN#explicitFilter У меня есть два варианта, если я не могу сделать это в Включить. Я мог бы фильтровать на клиенте. (У меня есть основной вид с частичным видом). Или я мог бы сделать явный оператор Load.