Please add a JIRA ticket with the LINQ causing the problem. http://216.121.112.228/browse/NH
<http://216.121.112.228/browse/NH>With some classes and mapping to recreate the issue a NH's committer will spent his time only in the fix. Thanks. On Tue, Dec 14, 2010 at 1:47 PM, Alexander Kot <[email protected]>wrote: > Hello > > I continue to explore NH 3.0 GA + Remotion - 1.13.85 and WCF data services > I try to use projection in OData > something like > http : //localhost : > 2711/TestWcfDataService.svc/TestEntities?$select=Id,FldChar10 > and it does not work and generate exception with big stack trace in NH & > remotion code > > the same effect i can reproduce with next LINQ query: > > //This query works successfully > var l0 = ses.Query<TestEntity>().Select(p => new { p1 = p.Id }).ToList(); > > //This will generate same exception as WCF Data services > var l1 = ses.Query<TestEntity>().Select(p => new {p1 = (p *as TestEntity* > ).Id}).ToList(); > > I understood that WCD DS generate strange redundant query but ..... > Any idea which code responsible for this error and how this situation can > be solved? > > error generated: > - <innererror> > <message>([-1] As TestEntity)</message> > <type>System.NotSupportedException</type> > <stacktrace>at > NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitUnaryExpression(UnaryExpression > expression) in > D:\NHib3\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line > 336 at > NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitExpression(Expression > expression) in > D:\NHib3\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line > 57 at > NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitMemberExpression(MemberExpression > expression) in > D:\NHib3\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line > 356 at > NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitExpression(Expression > expression) in > D:\NHib3\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line > 92 at > NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitUnaryExpression(UnaryExpression > expression) in > D:\NHib3\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line > 333 at > NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitExpression(Expression > expression) in > D:\NHib3\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line > 57 at > NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitUnaryExpression(UnaryExpression > expression) in > D:\NHib3\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line > 333 at > NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitExpression(Expression > expression) in > D:\NHib3\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line > 57 at > NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.Visit(Expression > expression) in > D:\NHib3\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line > 33 at > NHibernate.Linq.Visitors.SelectClauseVisitor.VisitExpression(Expression > expression) in > D:\NHib3\src\NHibernate\Linq\Visitors\SelectClauseVisitor.cs:line 64 at > Remotion.Data.Linq.Parsing.ExpressionTreeVisitor.VisitMemberAssignment(MemberAssignment > memberAssigment) in > c:\build\Remotion\trunk\Remotion\Data\Linq\Parsing\ExpressionTreeVisitor.cs:line > 380 at > Remotion.Data.Linq.Parsing.ExpressionTreeVisitor.VisitMemberBinding(MemberBinding > memberBinding) in > c:\build\Remotion\trunk\Remotion\Data\Linq\Parsing\ExpressionTreeVisitor.cs:line > 366 at > Remotion.Data.Linq.Parsing.ExpressionTreeVisitor.VisitList[T](ReadOnlyCollection`1 > list, Func`2 visitMethod) in > c:\build\Remotion\trunk\Remotion\Data\Linq\Parsing\ExpressionTreeVisitor.cs:line > 158 at > Remotion.Data.Linq.Parsing.ExpressionTreeVisitor.VisitMemberBindingList(ReadOnlyCollection`1 > expressions) in > c:\build\Remotion\trunk\Remotion\Data\Linq\Parsing\ExpressionTreeVisitor.cs:line > 408 at > Remotion.Data.Linq.Parsing.ExpressionTreeVisitor.VisitMemberInitExpression(MemberInitExpression > expression) in > c:\build\Remotion\trunk\Remotion\Data\Linq\Parsing\ExpressionTreeVisitor.cs:line > 333 at > Remotion.Data.Linq.Parsing.ExpressionTreeVisitor.VisitExpression(Expression > expression) in > c:\build\Remotion\trunk\Remotion\Data\Linq\Parsing\ExpressionTreeVisitor.cs:line > 98 at > NHibernate.Linq.Visitors.SelectClauseVisitor.VisitExpression(Expression > expression) in > D:\NHib3\src\NHibernate\Linq\Visitors\SelectClauseVisitor.cs:line 71 at > Remotion.Data.Linq.Parsing.ExpressionTreeVisitor.VisitConditionalExpression(ConditionalExpression > expression) in > c:\build\Remotion\trunk\Remotion\Data\Linq\Parsing\ExpressionTreeVisitor.cs:line > 236 at > Remotion.Data.Linq.Parsing.ExpressionTreeVisitor.VisitExpression(Expression > expression) in > c:\build\Remotion\trunk\Remotion\Data\Linq\Parsing\ExpressionTreeVisitor.cs:line > 81 at > NHibernate.Linq.Visitors.SelectClauseVisitor.VisitExpression(Expression > expression) in > D:\NHib3\src\NHibernate\Linq\Visitors\SelectClauseVisitor.cs:line 71 at > NHibernate.Linq.Visitors.SelectClauseVisitor.Visit(Expression expression) in > D:\NHib3\src\NHibernate\Linq\Visitors\SelectClauseVisitor.cs:line 41 at > NHibernate.Linq.Visitors.QueryModelVisitor.VisitSelectClause(SelectClause > selectClause, QueryModel queryModel) in > D:\NHib3\src\NHibernate\Linq\Visitors\QueryModelVisitor.cs:line 141 at > Remotion.Data.Linq.Clauses.SelectClause.Accept(IQueryModelVisitor visitor, > QueryModel queryModel) in > c:\build\Remotion\trunk\Remotion\Data\Linq\Clauses\SelectClause.cs:line 75 > at Remotion.Data.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel > queryModel) in > c:\build\Remotion\trunk\Remotion\Data\Linq\QueryModelVisitorBase.cs:line 44 > at NHibernate.Linq.Visitors.QueryModelVisitor.Visit() in > D:\NHib3\src\NHibernate\Linq\Visitors\QueryModelVisitor.cs:line 96 at > NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel > queryModel, VisitorParameters parameters, Boolean root) in > D:\NHib3\src\NHibernate\Linq\Visitors\QueryModelVisitor.cs:line 49 at > NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor > sessionFactory) in D:\NHib3\src\NHibernate\Linq\NhLinqExpression.cs:line 67 > at > NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(String > queryIdentifier, IQueryExpression queryExpression, String collectionRole, > Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor factory) > in D:\NHib3\src\NHibernate\Hql\Ast\ANTLR\ASTQueryTranslatorFactory.cs:line > 27 at > NHibernate.Engine.Query.HQLExpressionQueryPlan.CreateTranslators(String > expressionStr, IQueryExpression queryExpression, String collectionRole, > Boolean shallow, IDictionary`2 enabledFilters, ISessionFactoryImplementor > factory) in > D:\NHib3\src\NHibernate\Engine\Query\HQLExpressionQueryPlan.cs:line 34 at > NHibernate.Engine.Query.HQLExpressionQueryPlan..ctor(String expressionStr, > IQueryExpression queryExpression, String collectionRole, Boolean shallow, > IDictionary`2 enabledFilters, ISessionFactoryImplementor factory) in > D:\NHib3\src\NHibernate\Engine\Query\HQLExpressionQueryPlan.cs:line 23 at > NHibernate.Engine.Query.HQLExpressionQueryPlan..ctor(String expressionStr, > IQueryExpression queryExpression, Boolean shallow, IDictionary`2 > enabledFilters, ISessionFactoryImplementor factory) in > D:\NHib3\src\NHibernate\Engine\Query\HQLExpressionQueryPlan.cs:line 17 at > NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression > queryExpression, Boolean shallow, IDictionary`2 enabledFilters) in > D:\NHib3\src\NHibernate\Engine\Query\QueryPlanCache.cs:line 88 at > NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression > queryExpression, Boolean shallow) in > D:\NHib3\src\NHibernate\Impl\AbstractSessionImpl.cs:line 302 at > NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression > queryExpression) in D:\NHib3\src\NHibernate\Impl\AbstractSessionImpl.cs:line > 258 at NHibernate.Linq.NhQueryProvider.PrepareQuery(Expression expression, > IQuery& query, NhLinqExpression& nhQuery) in > D:\NHib3\src\NHibernate\Linq\NhQueryProvider.cs:line 42 at > NHibernate.Linq.NhQueryProvider.Execute(Expression expression) in > D:\NHib3\src\NHibernate\Linq\NhQueryProvider.cs:line 25 at > Remotion.Data.Linq.QueryableBase`1.System.Collections.IEnumerable.GetEnumerator() > in c:\build\Remotion\trunk\Remotion\Data\Linq\QueryableBase.cs:line 133 at > System.Data.Services.Internal.ProjectedWrapper.EnumerableWrapper.System.Collections.IEnumerable.GetEnumerator() > at System.Data.Services.WebUtil.GetRequestEnumerator(IEnumerable > enumerable)</stacktrace> > </innererror> > > > > > > > > -- > You received this message because you are subscribed to the Google Groups > "nhusers" group. > To post to this group, send email to [email protected]. > To unsubscribe from this group, send email to > [email protected]<nhusers%[email protected]> > . > For more options, visit this group at > http://groups.google.com/group/nhusers?hl=en. > -- Fabio Maulo -- You received this message because you are subscribed to the Google Groups "nhusers" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/nhusers?hl=en.
