@ Алекс, разве вы не получите тот же результат, используя код в моем ответе и тот, который вы написали в своем обновленном вопросе?
ужно использовать равно вместо Contains. У меня есть массив кодов с именем selectedDeviceTypeIDs, я предполагаю, что он имеет два кода {1,2}
Мне нужно получить результат из запроса, если идентификаторы Devices точно {1,2}, поэтому я должен заменить selectedDeviceTypeIDs.Contains на selectedDeviceTypeIDs.equal или что-то в этом роде ...
m => m.Devices.Any(w => selectedDeviceTypeIDs.Contains(w.DeviceTypeID)
if (DeviceTypeIDs != null)
{
Guid[] selectedDeviceTypeIDs = DeviceTypeIDs.Split(',').Select(Guid.Parse).ToArray();
query = query.Where(j => j.HospitalDepartments.Any(jj => jj.Units.Any(m => m.Devices.Any(w => selectedDeviceTypeIDs.Contains(w.DeviceTypeID)))));
}