Я начинаю исследование по NHibernate, и у меня есть проблема, которую я не могу решить, интересно, может ли кто-нибудь помочь мне.NHibernate GroupBy и Sum
отображение работает «правильно», но когда я пытаюсь сделать группировку и сумму, приложение возвращает следующее сообщение об ошибке:
"could not resolve property: Course.Price of: Persistence.POCO.RequestDetail"
var criteria = session.CreateCriteria(typeof(RequestDetail))
.SetProjection(
Projections.ProjectionList()
.Add(Projections.RowCount(), "RowCount")
.Add(Projections.Sum("Course.Price"), "Price")
.Add(Projections.GroupProperty("Request"), "RequestId")
)
.AddOrder(Order.Asc("RequestId"))
.SetResultTransformer(Transformers.AliasToEntityMap)
.List();
Примечание 1: Когда я беру код .Add(Projections.Sum ("Course.Price"), "Price")
приложение возвращает результат правильно.
Примечание 2: Единственный способ, которым я мог сделать, выполнить код ниже:
query.Length = 0;
query.AppendLine("select");
query.AppendLine(" s.Id,");
query.AppendLine(" s.Identification,");
query.AppendLine(" sum(c.Price) as Total");
query.AppendLine("from");
query.AppendLine(" Student s");
query.AppendLine("inner join");
query.AppendLine(" Request r on r.StudentId = s.Id");
query.AppendLine("inner join ");
query.AppendLine(" Requestdetail rq on rq.RequestId = r.Id");
query.AppendLine("inner join");
query.AppendLine(" Course c on c.Id = rq.CourseId");
query.AppendLine("Group by");
query.AppendLine(" s.Id, s.Identification");
query.AppendLine("Order by");
query.AppendLine("s.Identification");
IQuery criteria = session.CreateSQLQuery(query.ToString())
.SetResultTransformer(Transformers.AliasToBean<Teste>());
IList<Teste> teste = criteria.List<Teste>();
Кто-нибудь сталкивался с этим проблемы?
Спасибо человеку ... ваше решение отлично работало – Rick
Это замечательно видеть;) Наслаждайтесь NHibernate, сэр –