Есть ли в DetachedCriteria / ICriteria какие-либо ограничения по глубине соединения? - PullRequest
0 голосов
/ 28 ноября 2010

Представьте, что у меня есть C1, C2 и C3 классы. Предположим, что мы можем иметь string dummy = c1.ContainerC2.ContainerC3.Prop1. Существуют ли какие-либо ограничения, которые не позволяют мне создавать псевдоним непосредственно из C3 без указания других классов в критериях? Например:

DetachedCriteria criteria = DetachedCriteria.For<T>("root");
criteria.CreateAlias("ContainerC2.ContainerC3", "alias_abcdef");

У меня проблемы с этим. Он генерирует SQL-запрос со следующим сообщением об ошибке:

Не удалось связать многоэлементный идентификатор «alias_cont1_.HotelName».

1 Ответ

1 голос
/ 28 ноября 2010

Вы не можете перейти к ContainerC2 напрямую с помощью CriteriaAPI.Вместо этого вы должны сделать следующее:

DetachedCriteria criteria = DetachedCriteria.For<T>("root");
criteria.CreateCreteria("ContainerC2")
        .CreateAlias("ContainderC3", "alias_abcdef");
...