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]>: > 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
 > at > NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitExpression(Expression > expression) in > d:\NH\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line > 90
 > at > NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitBinaryExpression(BinaryExpression > expression) in :line 0
 > at > NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitExpression(Expression > expression) in > d:\NH\src\NHibernate\Linq\Visitors\HqlGeneratorExpressionTreeVisitor.cs:line > 80
 > at > NHibernate.Linq.Visitors.QueryModelVisitor.VisitWhereClause(WhereClause > whereClause, QueryModel queryModel, Int32 index) in > d:\NH\src\NHibernate\Linq\Visitors\QueryModelVisitor.cs:line 219
 > at Remotion.Linq.Clauses.WhereClause.Accept(IQueryModelVisitor visitor, > QueryModel queryModel, Int32 index) in :line 0
 > at > Remotion.Linq.QueryModelVisitorBase.VisitBodyClauses(ObservableCollection`1 > bodyClauses, QueryModel queryModel) in :line 0
 > at Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel > queryModel) in :line 0
 > at NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel > queryModel, VisitorParameters parameters, Boolean root) in > d:\NH\src\NHibernate\Linq\Visitors\QueryModelVisitor.cs:line 60
 > at NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor > sessionFactory) in d:\NH\src\NHibernate\Linq\NhLinqExpression.cs:line > 61
 > 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
 > at > NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression > queryExpression, Boolean shallow, IDictionary`2 enabledFilters) in > d:\NH\src\NHibernate\Engine\Query\QueryPlanCache.cs:line 88
 > at NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression > queryExpression, Boolean shallow) in > d:\NH\src\NHibernate\Impl\AbstractSessionImpl.cs:line 318
 > at NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression > queryExpression) in d:\NH\src\NHibernate\Impl\AbstractSessionImpl.cs:line > 274
 > at NHibernate.Linq.DefaultQueryProvider.PrepareQuery(Expression > expression, IQuery& query, NhLinqExpression& nhQuery) in > d:\NH\src\NHibernate\Linq\DefaultQueryProvider.cs:line 69
 > at NHibernate.Linq.DefaultQueryProvider.Execute(Expression expression) in > d:\NH\src\NHibernate\Linq\DefaultQueryProvider.cs:line 33
 > at NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression > expression) in d:\NH\src\NHibernate\Linq\DefaultQueryProvider.cs:line > 40
 > at System.Linq.Queryable.LongCount[TSource](IQueryable`1 source)
 > 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& sig, >> >> >> MethodAttributes methodAttributes, RuntimeType typeOwner)
 >> >> >> at System.RuntimeMethodHandle.InvokeMethodFast(IRuntimeMethodInfo >> >> >> method, Object target, Object[] arguments, Signature sig, >> >> >> MethodAttributes >> >> >> methodAttributes, RuntimeType typeOwner)
 >> >> >> at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, >> >> >> BindingFlags >> >> >> invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, >> >> >> Boolean >> >> >> skipVisibilityChecks)
 >> >> >> at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, >> >> >> BindingFlags >> >> >> invokeAttr, Binder binder, Object[] parameters, CultureInfo >> >> >> culture)
 >> >> >> at System.Reflection.MethodBase.Invoke(Object obj, Object[] >> >> >> parameters)
 >> >> >> at System.Data.Services.RequestQueryProcessor.ProcessCount()
 >> >> >> at System.Data.Services.RequestQueryProcessor.ProcessQuery()
 >> >> >> at >> >> >> System.Data.Services.RequestQueryProcessor.ProcessQuery(IDataService >> >> >> service, RequestDescription description)
 >> >> >> at System.Data.Services.RequestUriProcessor.ProcessRequestUri(Uri >> >> >> absoluteRequestUri, IDataService service)
 >> >> >> at >> >> >> System.Data.Services.DataService`1.ProcessIncomingRequestUri()
 >> >> >> 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)
 >> >> >> at >> >> >> >> >> >> NHibernate.Linq.Visitors.QueryModelVisitor.VisitWhereClause(WhereClause >> >> >> whereClause, QueryModel queryModel, Int32 index)
 >> >> >> at Remotion.Linq.Clauses.WhereClause.Accept(IQueryModelVisitor >> >> >> visitor, >> >> >> QueryModel queryModel, Int32 index)
 >> >> >> at >> >> >> >> >> >> >> >> >> Remotion.Linq.QueryModelVisitorBase.VisitBodyClauses(ObservableCollection`1 >> >> >> bodyClauses, QueryModel queryModel)
 >> >> >> at Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel >> >> >> queryModel)
 >> >> >> at >> >> >> >> >> >> NHibernate.Linq.Visitors.QueryModelVisitor.GenerateHqlQuery(QueryModel >> >> >> queryModel, VisitorParameters parameters, Boolean root)
 >> >> >> at >> >> >> >> >> >> NHibernate.Linq.NhLinqExpression.Translate(ISessionFactoryImplementor >> >> >> sessionFactory)
 >> >> >> at >> >> >> >> >> >> >> >> >> NHibernate.Hql.Ast.ANTLR.ASTQueryTranslatorFactory.CreateQueryTranslators(String >> >> >> queryIdentifier, IQueryExpression queryExpression, String >> >> >> collectionRole, >> >> >> Boolean shallow, IDictionary`2 filters, ISessionFactoryImplementor >> >> >> factory)
 >> >> >> at >> >> >> >> >> >> NHibernate.Engine.Query.QueryPlanCache.GetHQLQueryPlan(IQueryExpression >> >> >> queryExpression, Boolean shallow, IDictionary`2 enabledFilters)
 >> >> >> at >> >> >> NHibernate.Impl.AbstractSessionImpl.GetHQLQueryPlan(IQueryExpression >> >> >> queryExpression, Boolean shallow)
 >> >> >> at >> >> >> NHibernate.Impl.AbstractSessionImpl.CreateQuery(IQueryExpression >> >> >> queryExpression)
 >> >> >> at NHibernate.Linq.DefaultQueryProvider.PrepareQuery(Expression >> >> >> expression, IQuery& query, NhLinqExpression& nhQuery)
 >> >> >> at NHibernate.Linq.DefaultQueryProvider.Execute(Expression >> >> >> expression)
 >> >> >> at >> >> >> NHibernate.Linq.DefaultQueryProvider.Execute[TResult](Expression >> >> >> expression)
 >> >> >> at System.Linq.Queryable.LongCount[TSource](IQueryable`1 >> >> >> source)
 >> >> >> 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]. > 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 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.
