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&#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].
> 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.

Reply via email to