NHibernateのにおよびサブオブジェクト私はこのLINQクエリをしました:LINQのクエリ
var query = (from i in session.Query<Photo>()
where i.IsApproved == true
select i);
if (topPhotoEnum.Equals(TimeModeEnum.Today))
query = query.Where(x => x.UploadDate >= DateTime.Today
&& x.UploadDate <= DateTime.Now);
//return query.OrderByDescending(x => x.Votes.Count).Take(number).ToList();
return query.ToList()
.OrderByDescending(x => x.Votes.Count).Take(number).ToList();
ここでの問題は、私は、データベースからすべてのデータを取得し、その後、私は、データをフィルタリングするOrderByDescending
とTake
を呼び出すことです。
私はデータベースフィルターデータを許可したいと思いますが、サブコレクション操作であるため、LinqがNHibernateプロバイダに.OrderByDescending(x => x.Votes.Count)
をサポートしていないようです。
Antlr.Runtime.NoViableAltException
NHibernate.Hql.Ast.ANTLR.ErrorCounter.ThrowQueryException()+100
NHibernate.Hql.Ast.ANTLR.HqlSqlTranslator.Translate()305
NHibernateは.Hql.Ast.ANTLR.QueryTranslatorImpl.Analyze(文字列 collectionRole)+99
NHibernate.Hql.Ast.ANTLR.QueryTranslatorImpl.DoCompile(IDictionaryを置換、ブール浅い)+44
NHibernate.Hql.Ast .ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(IASTNode AST、文字列queryIdentifier、文字列collectionRole、ブール浅い、 IDictionaryを2 filters, ISessionFactoryImplementor factory) +320
2つのフィルタ、 ISessionFactoryImplementor工場)66
NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(String queryIdentifier, IQueryExpression queryExpression, String collectionRole, Boolean shallow, IDictionary
NHibernate.Engine.Query.HQLExpressionQueryPlan.CreateTranslators(文字列 expressionStr、IQueryExpressionのQueryExpression 、文字列 collectionRole、ブール浅い、IDictionaryを2 enabledFilters, ISessionFactoryImplementor factory) +86
2 enabledFilters、 ISessionFactoryImplementor工場)+63
NHibernate.Engine.Query.HQLExpressionQueryPlan..ctor(String expressionStr, IQueryExpression queryExpression, String collectionRole, Boolean shallow, IDictionary
NHibernate.Engine.Query.HQLExpressionQueryPlan..ctor(文字列 expressionStr、IQueryExpressionのQueryExpression、ブール浅い、 たIDictionary2 enabledFilters, ISessionFactoryImplementor factory) +53 NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression queryExpression, Boolean shallow, IDictionary
2 enabledFilters)249
NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression のQueryExpression、ブール浅い)185
NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression のQueryExpression)158
NHibernate.Linq.NhQueryProvider.PrepareQuery (式expression、 IQUERY &クエリ、NhLinqExpression & nhQuery)82
NHibernate.Linq.NhQueryProvider.Execute(式expression)58
NHibernate.Linq.NhQueryProvider.Execute(式expression)+43 Remotion.Data.Linq.QueryableBase1.GetEnumerator() +120
1..ctor(IEnumerableを
System.Collections.Generic.List1 collection) +315 System.Linq.Enumerable.ToList(IEnumerable
1ソース)58
誰かが私を助けることができますか?
「...または最新のNHを使用する」とはどういう意味ですか?最新バージョンsupprtそれ? – danyolgiax
現在AFAIKはトランクのみで、リリースされていないバージョンはまだありません – Firo