Issue posted here: https://nhibernate.jira.com/browse/NH-3366


On Sunday, January 6, 2013 3:08:21 PM UTC+2, Oskar Berggren wrote:
>
> Thanks for testing. Please report the new issue at 
> https://nhibernate.jira.com/. Include the query and the stack trace 
> (I'm guessing one of queries is enough). 
>
> /Oskar 
>
>
> 2013/1/6 Andrewz <[email protected] <javascript:>>: 
> > Thank you Oskar. 
> > 
> > I got the 3.3.x branch from github and the query works now, amazing. 
> > 
> > But I still find the following queries failing: 
> > 
> > 
> http://localhost:4380/UserService.svc/Users()?$filter=tolower(FirstName)%20lt%20'andrew'&$top=10&$inlinecount=allpages
>  
> > 
> http://localhost:4380/UserService.svc/Users()?$filter=tolower(FirstName)%20le%20'andrew'&$top=10&$inlinecount=allpages
>  
> > 
> http://localhost:4380/UserService.svc/Users()?$filter=tolower(FirstName)%20gt%20'andrew'&$top=10&$inlinecount=allpages
>  
> > 
> http://localhost:4380/UserService.svc/Users()?$filter=tolower(FirstName)%20ge%20'andrew'&$top=10&$inlinecount=allpages
>  
> > 
> > gt\lt: 'greater\less than' 
> > ge\le: 'greater\less than or equal' 
> > 
> > Here is the stacktrace for the first query: 
> > 
> >     <internalexception> 
> >       <message>Int32 Compare(System.String, System.String)</message> 
> >       <type>System.NotSupportedException</type> 
> >       <stacktrace>   at 
> > 
> NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitMethodCallExpression(MethodCallExpression
>  
>
> > expression) in 
> > 
> d:\NH\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line 
>
> > 409&#xD; 
> >    at 
> > 
> NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitExpression(Expression
>  
>
> > expression) in 
> > 
> d:\NH\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line 
>
> > 90&#xD; 
> >    at 
> > 
> NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitBinaryExpression(BinaryExpression
>  
>
> > expression) in :line 0&#xD; 
> >    at 
> > 
> NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitExpression(Expression
>  
>
> > expression) in 
> > 
> d:\NH\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line 
>
> > 80&#xD; 
> >    at 
> > NHibernate.Linq.Visitors.QueryModelVisitor.VisitWhereClause(WhereClause 
> > whereClause, QueryModel queryModel, Int32 index) in 
> > d:\NH\src\NHibernate\Linq\Visitors\QueryModelVisitor.cs:line 219&#xD; 
> >    at Remotion.Linq.Clauses.WhereClause.Accept(IQueryModelVisitor 
> visitor, 
> > QueryModel queryModel, Int32 index) in :line 0&#xD; 
> >    at 
> > 
> Remotion.Linq.QueryModelVisitorBase.VisitBodyClauses(ObservableCollection`1 
> > bodyClauses, QueryModel queryModel) in :line 0&#xD; 
> >    at Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel 
> > queryModel) in :line 0&#xD; 
> >    at 
> NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel 
> > queryModel, VisitorParameters parameters, Boolean root) in 
> > d:\NH\src\NHibernate\Linq\Visitors\QueryModelVisitor.cs:line 60&#xD; 
> >    at 
> NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor 
> > sessionFactory) in d:\NH\src\NHibernate\Linq\NhLinqExpression.cs:line 
> > 61&#xD; 
> >    at 
> > 
> NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(String
>  
>
> > queryIdentifier, IQueryExpression queryExpression, String 
> collectionRole, 
> > Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor 
> factory) 
> > in d:\NH\src\NHibernate\Hql\Ast\ANTLR\ASTQueryTranslatorFactory.cs:line 
> > 27&#xD; 
> >    at 
> > NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression 
> > queryExpression, Boolean shallow, IDictionary`2 enabledFilters) in 
> > d:\NH\src\NHibernate\Engine\Query\QueryPlanCache.cs:line 88&#xD; 
> >    at 
> NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression 
> > queryExpression, Boolean shallow) in 
> > d:\NH\src\NHibernate\Impl\AbstractSessionImpl.cs:line 318&#xD; 
> >    at NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression 
> > queryExpression) in 
> d:\NH\src\NHibernate\Impl\AbstractSessionImpl.cs:line 
> > 274&#xD; 
> >    at NHibernate.Linq.DefaultQueryProvider.PrepareQuery(Expression 
> > expression, IQuery&amp; query, NhLinqExpression&amp; nhQuery) in 
> > d:\NH\src\NHibernate\Linq\DefaultQueryProvider.cs:line 69&#xD; 
> >    at NHibernate.Linq.DefaultQueryProvider.Execute(Expression 
> expression) in 
> > d:\NH\src\NHibernate\Linq\DefaultQueryProvider.cs:line 33&#xD; 
> >    at NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression 
> > expression) in d:\NH\src\NHibernate\Linq\DefaultQueryProvider.cs:line 
> > 40&#xD; 
> >    at System.Linq.Queryable.LongCount[TSource](IQueryable`1 source)&#xD; 
> >    at 
> > 
> System.Data.Services.RequestQueryProcessor.CountQueryResult[TElement](IQueryable`1
>  
>
> > query)</stacktrace> 
> >     </internalexception> 
> > 
> > 
> > On Sunday, January 6, 2013 9:28:22 AM UTC+2, Oskar Berggren wrote: 
> >> 
> >> Fork/download on https://github.com/nhibernate/nhibernate-core. 
> >> Checkout the 3.3.x branch. Run GaRelease. Look in the build folder. 
> >> 
> >> There are also binaries available on 
> >> http://teamcity.codebetter.com/project.html?projectId=project7, but 
> >> these are from the master branch, which have more changes and requires 
> >> .Net 4. 
> >> 
> >> /Oskar 
> >> 
> >> 
> >> 2013/1/6 Andrewz <[email protected]>: 
> >> > I mentioned that I am using the NHibernate got from NuGet. 
> >> > The assembly version is 3.3.1.4000 
> >> > 
> >> > Can you please let me know where to test a newer build? 
> >> > 
> >> > Thanks. 
> >> > 
> >> > On Sunday, January 6, 2013 12:08:06 AM UTC+2, Oskar Berggren wrote: 
> >> >> 
> >> >> Sounds like it's covered by one of the WCF-DS related issues fixed 
> for 
> >> >> the upcoming 3.3.3 release (e.g. NH-3261, but others relate to this 
> >> >> also). 
> >> >> 
> >> >> It would be useful if you could try a build from the 3.3.x branch to 
> >> >> see if the issue is resolved for you. 
> >> >> 
> >> >> /Oskar 
> >> >> 
> >> >> 
> >> >> 2013/1/5 Andrewz <[email protected]>: 
> >> >> > Any ideas or hints on this issue would be great, 
> >> >> > 
> >> >> > Thanks 
> >> >> > 
> >> >> > 
> >> >> > On Saturday, January 5, 2013 9:08:17 PM UTC+2, Andrewz wrote: 
> >> >> >> 
> >> >> >> I created a web app in Visual Studio 2010, added NHibernate and 
> >> >> >> FluentNHibernate by NuGet. 
> >> >> >> My intention is to test how oData works with latest NHibernate 
> and 
> >> >> >> SQL 
> >> >> >> Server 2008 R2 
> >> >> >> It's a simple app with one table, User. 
> >> >> >> I added like 5,000 users in the User table to have data to query. 
> >> >> >> 
> >> >> >> I am doing the following queries which worked OK: 
> >> >> >> 
> >> >> >> 
> >> >> >> 
> >> >> >> 
> http://localhost:4380/UserService.svc/Users()?$top=10&$inlinecount=allpages 
> >> >> >> 
> >> >> >> 
> >> >> >> 
> >> >> >> 
> http://localhost:4380/UserService.svc/Users()?$filter=FirstName%20eq%20'Andrew0'&$top=10&$inlinecount=allpages
>  
> >> >> >> 
> >> >> >> My question is why the following query fails: 
> >> >> >> 
> >> >> >> 
> >> >> >> 
> >> >> >> 
> http://localhost:4380/UserService.svc/Users()?$filter=substringof('Andrew',tolower(FirstName))&$orderby=LastName&$top=10&$inlinecount=allpages
>  
>
> >> >> >> 
> >> >> >> The exception is the following(see below the stack trace): 
> >> >> >> Unable to cast object of type 'NHibernate.Hql.Ast.HqlCast' to 
> type 
> >> >> >> 'NHibernate.Hql.Ast.HqlBooleanExpression'. 
> >> >> >> 
> >> >> >> Here are my classes: 
> >> >> >> 
> >> >> >> [DataServiceKey("Id")] 
> >> >> >> [DataServiceEntity] 
> >> >> >> public class User 
> >> >> >> { 
> >> >> >>         public virtual int Id { get; protected set; } 
> >> >> >>         public virtual string FirstName { get; set; } 
> >> >> >>         public virtual string LastName { get; set; } 
> >> >> >> } 
> >> >> >> 
> >> >> >>     public class UserMapping : ClassMap<User> 
> >> >> >>     { 
> >> >> >>         public UserMapping() 
> >> >> >>         { 
> >> >> >>             Id(user => user.Id).GeneratedBy.Identity(); 
> >> >> >>             Map(user => 
> user.FirstName).Not.Nullable().Length(50); 
> >> >> >>             Map(user => user.LastName).Not.Nullable().Length(50); 
> >> >> >>         } 
> >> >> >>   } 
> >> >> >> 
> >> >> >>  public class UserDataContext 
> >> >> >>     { 
> >> >> >>         public ISession Session { set; get; } 
> >> >> >> 
> >> >> >>         public IQueryable<User> Users 
> >> >> >>         { 
> >> >> >>             get 
> >> >> >>             { 
> >> >> >>                 return this.Session.Query<User>(); 
> >> >> >>             } 
> >> >> >>         } 
> >> >> >>     } 
> >> >> >> 
> >> >> >>  [ServiceBehavior(IncludeExceptionDetailInFaults = true)] 
> >> >> >>     public class UserService : DataService<UserDataContext>, 
> >> >> >> IDisposable 
> >> >> >>     { 
> >> >> >>         ISession session; 
> >> >> >> 
> >> >> >>         public static void 
> >> >> >> InitializeService(DataServiceConfiguration 
> >> >> >> config) 
> >> >> >>         { 
> >> >> >>             config.SetEntitySetAccessRule("*", 
> EntitySetRights.All); 
> >> >> >>             config.DataServiceBehavior.MaxProtocolVersion = 
> >> >> >> DataServiceProtocolVersion.V2; 
> >> >> >>             config.UseVerboseErrors = true; 
> >> >> >>         } 
> >> >> >> 
> >> >> >>         protected override UserDataContext CreateDataSource() 
> >> >> >>         { 
> >> >> >>             var sessionFactory = new HibernateSessionFactory(); 
> >> >> >>             this.session = sessionFactory.OpenSession(); 
> >> >> >>             return new UserDataContext() 
> >> >> >>             { 
> >> >> >>                 Session = this.session 
> >> >> >>             }; 
> >> >> >>         } 
> >> >> >> 
> >> >> >>         public void Dispose() 
> >> >> >>         { 
> >> >> >>             this.session.Dispose(); 
> >> >> >>             this.session = null; 
> >> >> >>         } 
> >> >> >>     } 
> >> >> >> 
> >> >> >> 
> >> >> >> Here is the web response I see in Fiddler: 
> >> >> >> 
> >> >> >> <?xml version="1.0" encoding="utf-8" standalone="yes"?> 
> >> >> >> <error 
> >> >> >> 
> >> >> >> xmlns="
> http://schemas.microsoft.com/ado/2007/08/dataservices/metadata";> 
> >> >> >>   <code></code> 
> >> >> >>   <message xml:lang="en-US">An error occurred while processing 
> this 
> >> >> >> request.</message> 
> >> >> >>   <innererror> 
> >> >> >>     <message>Exception has been thrown by the target of an 
> >> >> >> invocation.</message> 
> >> >> >>     <type>System.Reflection.TargetInvocationException</type> 
> >> >> >>     <stacktrace>   at 
> >> >> >> System.RuntimeMethodHandle._InvokeMethodFast(IRuntimeMethodInfo 
> >> >> >> method, 
> >> >> >> Object target, Object[] arguments, SignatureStruct&amp; sig, 
> >> >> >> MethodAttributes methodAttributes, RuntimeType typeOwner)&#xD; 
> >> >> >>    at 
> System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo 
> >> >> >> method, Object target, Object[] arguments, Signature sig, 
> >> >> >> MethodAttributes 
> >> >> >> methodAttributes, RuntimeType typeOwner)&#xD; 
> >> >> >>    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, 
> >> >> >> BindingFlags 
> >> >> >> invokeAttr, Binder binder, Object[] parameters, CultureInfo 
> culture, 
> >> >> >> Boolean 
> >> >> >> skipVisibilityChecks)&#xD; 
> >> >> >>    at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, 
> >> >> >> BindingFlags 
> >> >> >> invokeAttr, Binder binder, Object[] parameters, CultureInfo 
> >> >> >> culture)&#xD; 
> >> >> >>    at System.Reflection.MethodBase.Invoke(Object obj, Object[] 
> >> >> >> parameters)&#xD; 
> >> >> >>    at 
> System.Data.Services.RequestQueryProcessor.ProcessCount()&#xD; 
> >> >> >>    at 
> System.Data.Services.RequestQueryProcessor.ProcessQuery()&#xD; 
> >> >> >>    at 
> >> >> >> 
> System.Data.Services.RequestQueryProcessor.ProcessQuery(IDataService 
> >> >> >> service, RequestDescription description)&#xD; 
> >> >> >>    at 
> System.Data.Services.RequestUriProcessor.ProcessRequestUri(Uri 
> >> >> >> absoluteRequestUri, IDataService service)&#xD; 
> >> >> >>    at 
> >> >> >> 
> System.Data.Services.DataService`1.ProcessIncomingRequestUri()&#xD; 
> >> >> >>    at 
> >> >> >> System.Data.Services.DataService`1.HandleRequest()</stacktrace> 
> >> >> >>     <internalexception> 
> >> >> >>       <message>Unable to cast object of type 
> >> >> >> 'NHibernate.Hql.Ast.HqlCast' 
> >> >> >> to type 'NHibernate.Hql.Ast.HqlBooleanExpression'.</message> 
> >> >> >>       <type>System.InvalidCastException</type> 
> >> >> >>       <stacktrace>   at 
> >> >> >> 
> >> >> >> 
> >> >> >> 
> NHibernate.Hql.Ast.HqlTreeNodeExtensions.AsBooleanExpression(HqlTreeNode 
> >> >> >> node)&#xD; 
> >> >> >>    at 
> >> >> >> 
> >> >> >> 
> NHibernate.Linq.Visitors.QueryModelVisitor.VisitWhereClause(WhereClause 
> >> >> >> whereClause, QueryModel queryModel, Int32 index)&#xD; 
> >> >> >>    at Remotion.Linq.Clauses.WhereClause.Accept(IQueryModelVisitor 
> >> >> >> visitor, 
> >> >> >> QueryModel queryModel, Int32 index)&#xD; 
> >> >> >>    at 
> >> >> >> 
> >> >> >> 
> >> >> >> 
> Remotion.Linq.QueryModelVisitorBase.VisitBodyClauses(ObservableCollection`1 
> >> >> >> bodyClauses, QueryModel queryModel)&#xD; 
> >> >> >>    at 
> Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel 
> >> >> >> queryModel)&#xD; 
> >> >> >>    at 
> >> >> >> 
> >> >> >> 
> NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel 
> >> >> >> queryModel, VisitorParameters parameters, Boolean root)&#xD; 
> >> >> >>    at 
> >> >> >> 
> >> >> >> 
> NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor 
> >> >> >> sessionFactory)&#xD; 
> >> >> >>    at 
> >> >> >> 
> >> >> >> 
> >> >> >> 
> NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(String
>  
>
> >> >> >> queryIdentifier, IQueryExpression queryExpression, String 
> >> >> >> collectionRole, 
> >> >> >> Boolean shallow, IDictionary`2 filters, 
> ISessionFactoryImplementor 
> >> >> >> factory)&#xD; 
> >> >> >>    at 
> >> >> >> 
> >> >> >> 
> NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression 
> >> >> >> queryExpression, Boolean shallow, IDictionary`2 
> enabledFilters)&#xD; 
> >> >> >>    at 
> >> >> >> 
> NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression 
> >> >> >> queryExpression, Boolean shallow)&#xD; 
> >> >> >>    at 
> >> >> >> NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression 
> >> >> >> queryExpression)&#xD; 
> >> >> >>    at 
> NHibernate.Linq.DefaultQueryProvider.PrepareQuery(Expression 
> >> >> >> expression, IQuery&amp; query, NhLinqExpression&amp; 
> nhQuery)&#xD; 
> >> >> >>    at NHibernate.Linq.DefaultQueryProvider.Execute(Expression 
> >> >> >> expression)&#xD; 
> >> >> >>    at 
> >> >> >> NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression 
> >> >> >> expression)&#xD; 
> >> >> >>    at System.Linq.Queryable.LongCount[TSource](IQueryable`1 
> >> >> >> source)&#xD; 
> >> >> >>    at 
> >> >> >> 
> >> >> >> 
> >> >> >> 
> System.Data.Services.RequestQueryProcessor.CountQueryResult[TElement](IQueryable`1
>  
>
> >> >> >> query)</stacktrace> 
> >> >> >>     </internalexception> 
> >> >> >>   </innererror> 
> >> >> >> </error> 
> >> >> > 
> >> >> > -- 
> >> >> > You received this message because you are subscribed to the Google 
> >> >> > Groups 
> >> >> > "nhusers" group. 
> >> >> > To view this discussion on the web visit 
> >> >> > https://groups.google.com/d/msg/nhusers/-/_B79zDbcu1MJ. 
> >> >> > 
> >> >> > 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. 
> >> > 
> >> > -- 
> >> > You received this message because you are subscribed to the Google 
> >> > Groups 
> >> > "nhusers" group. 
> >> > To view this discussion on the web visit 
> >> > https://groups.google.com/d/msg/nhusers/-/Gpp7lCadQf0J. 
> >> > 
> >> > 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. 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> Groups 
> > "nhusers" group. 
> > To view this discussion on the web visit 
> > https://groups.google.com/d/msg/nhusers/-/zGXnkzj2WogJ. 
> > 
> > To post to this group, send email to [email protected]<javascript:>. 
>
> > To unsubscribe from this group, send email to 
> > [email protected] <javascript:>. 
> > For more options, visit this group at 
> > http://groups.google.com/group/nhusers?hl=en. 
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To view this discussion on the web visit 
https://groups.google.com/d/msg/nhusers/-/LeeV_H9simIJ.
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.

Reply via email to