Каким будет лучший способ добавить прогнозы к запросу nhibernate, который уже может или не может иметь 1 или более проекций? Вызов .SetProjection(), похоже, заменяет любые проекции, которые могут уже существовать.
Чтобы дать немного фонового контекста, я использую версию метода расширения вычисленного результата, найденного здесь, и я подошел к точке, где Я передаю запрос с отдельной проекцией, но эта проекция лишена для критериев подсчета из-за вызова .SetProjection(Projections.RowCountInt64).
Я не уверен, что это сработает, потому что я не могу проверить это прямо сейчас, но почему бы вам не использовать что-то вроде ProjectionList
для этого трюка?
var criteria = ...
var projectionList = Projection.ProjectionList();
// Add you projections to the projectionList
projectionList.Add(yourQueryProjection);
projectionList.Add(Projections.RowCountInt64());
criteria.setProjection(projectionList);
Я не сделал этого, поэтому вам, возможно, придется немного его переработать, но я считаю, что вы можете сделать что-то вроде
.ProjectionCriteria.Add(Projections.RowCountInt64)
Так как у него может не быть никаких проекций, вы можете проверить, что в этом случае имеет свойство ProjectionCriteria. Он может быть нулевым.