@ Алекс, разве вы не получите тот же результат, используя код в моем ответе и тот, который вы написали в своем обновленном вопросе?

ужно использовать равно вместо 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)))));
}

Ответы на вопрос(3)

Ваш ответ на вопрос