2
У меня есть объект Person. У каждого человека есть страна, я хочу выбрать все страны, в которых есть люди. Этот критерий запрос возвращает весь различный CountryId-хЗапрос на доступ к NHibernate - выберите Distinct with Registered Entity
criteria.SetProjection(Projections.Distinct(Projections.Property("Country")));
Как изменить его, чтобы присоединиться и принести объект страны, а не только ID?
Это будет работать, но у меня нет отдельных критериев, поэтому мне нужен способ преобразования ICriteria в DetachedCriteria, или я не могу использовать это. Этот конструктор выглядит многообещающим, но я понятия не имею, что передать в CriteriaImpl DetachedCriteria (NHibernate.Impl.CriteriaImpl, NHibernate.ICriteria) – reach4thelasers
На самом деле вы можете пойти другим путем. Создайте свои критерии, используя только экземпляры DetachedCriteria (DetachedCriteria.For()), а затем используйте GetExecutableCriteria (сеанс), чтобы преобразовать их в реальные, исполняемые критерии. –
Это сработало, но мне пришлось потратить часы, меняя все объекты ICriteria на объекты DetachedCriteria, а затем прикрепите их к сеансу, когда они мне понадобятся. Любой другой способ привел бы к дублированию, и я был ужален раньше ошибками, где я обновлял одну вещь, а не другую. Дайте мне знать, если кто-нибудь знает, как это сделать с ICriteria, а не с DetachedCriteria – reach4thelasers