Используя поставщика NHibernate 3 linq, я бы хотел выбрать максимальное количество дочерних элементов.
Используя следующий запрос linq, я получаю исключение Antlr.Runtime.NoViableAltException, за которым следует Antlr.Runtime.MismatchedTreeNodeException
int maxCount = _repository.FindAll<Device>().Max(d=>d.DeviceSensors.Count());
Функция хранилища FindAll () возвращает session.Query.
Сведения об исключении:
Antlr.Runtime.NoViableAltException occurred
Message="Exception of type 'Antlr.Runtime.NoViableAltException' was thrown."
Source="NHibernate"
Char=0
CharPositionInLine=-1
Index=21
Line=0
UnexpectedType=84
StackTrace:
at NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.aggregateExpr() in d:\CSharp\NH\nhibernate\src\NHibernate\Hql\Ast\ANTLR\Generated\HqlSqlWalker.cs:line 3203
InnerException:
.
Antlr.Runtime.MismatchedTreeNodeException occurred
Message="Exception of type 'Antlr.Runtime.MismatchedTreeNodeException' was thrown."
Source="Antlr3.Runtime"
Char=0
CharPositionInLine=-1
Index=21
Line=0
UnexpectedType=84
StackTrace:
at Antlr.Runtime.Tree.TreeParser.RecoverFromMismatchedToken(IIntStream input, Int32 ttype, BitSet follow)
at Antlr.Runtime.BaseRecognizer.Match(IIntStream input, Int32 ttype, BitSet follow)
at NHibernate.Hql.Ast.ANTLR.HqlSqlWalker.functionCall() in d:\CSharp\NH\nhibernate\src\NHibernate\Hql\Ast\ANTLR\Generated\HqlSqlWalker.cs:line 7906
InnerException:
NHibernate.Hql.Ast.ANTLR.QuerySyntaxException: Exception of type 'Antlr.Runtime.NoViableAltException' was thrown. [.First(.Select(.OrderByDescending(NHibernate.Linq.NhQueryable`1[RGB.TTT.Domain.Device], Quote((x, ) => (x.DeviceSensors.Count)), ), Quote((x, ) => (new <>f__AnonymousType2`1(x.DeviceSensors.Count, ))), ), )]
Это известная проблема?Или мне нужно переписать запрос, любые предложения более чем приветствуются.