У меня есть запрос критериев, который я использую для отображения страниц результатов. Мне также нужно получить общее количество всех предметов. Вместо того, чтобы иметь два запроса, один для пейджинга результатов и один для подсчета (поскольку они идентичны отдельно от .AddOrder()Удаление заказа из запроса NHibernate Query
public ICriteria StandardQuery {
get {
return NHibernateSesssionManager.GetSession.CreateCriteria<Person>.AddOrder("OrderProperty", Order.Desc);
}
public ICriteria CountQuery {
get{
return StandardQuery.SetProjection(Projections.Count("ID"));
}
Очевидно CountQuery barfs с «Колонка„dbo.Person.ordercolumn“является недействительным в предложения ORDER BY, поскольку он не содержится ни в статистической функции или предложения GROUP BY.»
Это имеет смысл, так что в основном я хочу сделать что-то вроде этого.
public ICriteria CountQuery {
get{
return StandardQuery.RemoveOrders().SetProjection(Projections.Count("ID"));
}
есть способ сделать что-то подобное? Чтобы я был спасен «риск» наличия двух повторяющихся запросов, один для подкачки и один для подсчета. Очевидно, что любое изменение в любом запросе должно отражаться на другом, и это риск, который мне не нравится. Что бы вы сделали?
WOW ребята из NHibernate действительно подумали обо всем !! Позор я не могу сделать "return StandardQuery.ClearOrders();" Интересно, почему они так поступили? – reach4thelasers