NHibernate, подзапрос для выбора максимального значения, правильный запрос сформирован, но не выполняется - PullRequest
0 голосов
/ 28 июня 2010
IList lFolioHistory;
ISession session = NHibernateHelper.GetCurrentSession();

var detq = NHibernate.Criterion.DetachedCriteria.For<FolioHistory>("e2");
detq.SetProjection(Projections.Alias(Projections.Max("Foliohistdate"), "maxFoliohistdate"));

detq.Add(Restrictions.EqProperty("e2.Memberid", "e.Memberid"));

ICriteria sc = session.CreateCriteria(typeof(FolioHistory), "e");
sc.Add(NHibernate.Criterion.Restrictions.Eq("e.Memberid", iMemberId));
sc.Add(NHibernate.Criterion.Subqueries.PropertyEq("Foliohistdate", detq));
lFolioHistory = sc.List();

правильный запрос формируется, как показано ниже, но не выполняется.

ВЫБОР this_.foliohist_id, как foliohist1_27_0_, this_.member_id, как member2_27_0_, this_.foliohist_txnamt, как foliohist3_27_0_, this_.foliohist_date, как foliohist4_27_0_, this_.foliohist_balance как foliohist5_27_0_, this_.foliohist_remarks как foliohist6_27_0_, this_.foliohist_crby как foliohist7_27_0_ ИЗ hbms_foliohistory this_ ГДЕ this_ .member_id =? p0 и this_.foliohist_date = (ВЫБЕРИТЕ макс (this_0_.foliohist_date) как y0_ ОТ hbms_foliohistory this_0_ ГДЕ this_0_.member_id = this_.member_id)

1 Ответ

0 голосов
/ 30 июня 2010

Запрос не выполнялся, а выдавал ошибку.Наконец-то понял, что это ошибка даты.Разрешил это.Извините, что беспокою вас всех.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...