В настоящее время у меня есть запрос MultiCriteria, который фильтрует результаты на основе идентификаторов, находящихся в подзапросе
Subqueries.PropertyIn("Id", detachedCriteria)
Подзапрос одинаков для всех запросов, используемых в многокритериальном запросе.
Кажется немного уродливым смотреть на sql, что подзапрос повторяется, в моем текущем случае 15 раз.
Причина отдельных запросов заключается в том, что каждый из них имеет разные объединения и не хочет одно массивное декартово соединение.
Если бы я писал sql вручную, я бы вытащил повторный подзапрос в общее табличное выражение
WITH XYZ AS
{
....
}
и тогда подзапрос будет где id в XYZ в 15 запросах.
Это немного зависит от сервера sql, альтернативой может быть временная таблица или другая особенность базы данных.
Есть идеи, как улучшить запрос, или я застрял с дублирующимися подзапросами?