Yes, I will apply this fix to 3.3.x Also these issues are related.
https://nhibernate.jira.com/browse/NH-3005 -- see Oskar's comment about how to resolve this issue in general. https://nhibernate.jira.com/browse/NH-3237 - removed cast in Min and Max https://nhibernate.jira.com/browse/NH-3357 - added support for datetimeofset. Best Regards, Alex 2013/5/31 Diego Mijelshon <[email protected]> > Ah, I see this was fixed in 8c2e24401ca501d50829e745471e728c0c47f7bb. > The cast removal could probably be applied to 3.x too. > > > On Thu, May 30, 2013 at 10:49 AM, Alexander I. Zaytsev > <[email protected]>wrote: > >> Query should work with NH master branch. >> >> >> 2013/5/31 Alexander I. Zaytsev <[email protected]> >> >> I see.... >>> >>> Linq inserts cast here. >>> >>> >>> 2013/5/31 Diego Mijelshon <[email protected]> >>> >>>> Yes. See test fixture at >>>> https://github.com/diegose/NHibernate.Diegose/blob/master/NodaTime/Test/LocalDateFixture.cs >>>> >>>> >>>> On Thu, May 30, 2013 at 9:02 AM, Alexander I. Zaytsev <[email protected] >>>> > wrote: >>>> >>>>> Ok, >>>>> does this query work in HQL? >>>>> >>>>> >>>>> 2013/5/30 Diego Mijelshon <[email protected]> >>>>> >>>>>> Alex - that's what the NHibernate.NodaTime project is about! :-) >>>>>> I'll wait 'til you re-read my original email... >>>>>> ...ok, we're back :-) >>>>>> So, the problem is, my type works fine for most operations (schema >>>>>> creation, CRUD, HQL, and LINQ queries that include the properties as >>>>>> scalar). But aggregations fail because the tree includes an "HqlIdent", >>>>>> which I have no idea what represents, but is hardcoded for primitive >>>>>> types. >>>>>> >>>>>> >>>>>> On Wed, May 29, 2013 at 8:34 PM, Alexander I. Zaytsev < >>>>>> [email protected]> wrote: >>>>>> >>>>>>> I mean create a IUserType to handle NodaTime and register it in >>>>>>> mapping. >>>>>>> >>>>>>> Regards, >>>>>>> Alex >>>>>>> >>>>>>> >>>>>>> 2013/5/29 Diego Mijelshon <[email protected]> >>>>>>> >>>>>>>> Register where, Alex? >>>>>>>> >>>>>>>> >>>>>>>> On Tue, May 28, 2013 at 7:31 PM, Alexander I. Zaytsev < >>>>>>>> [email protected]> wrote: >>>>>>>> >>>>>>>>> Hi Diego, >>>>>>>>> >>>>>>>>> Probably you need to register usertype for nodatime. >>>>>>>>> >>>>>>>>> Regards, >>>>>>>>> Alex >>>>>>>>> >>>>>>>>> >>>>>>>>> 2013/5/29 Diego Mijelshon <[email protected]> >>>>>>>>> >>>>>>>>>> session.Query<Foo>().Max(x => x.Date); >>>>>>>>>> >>>>>>>>>> This is the full code of the method I did not commit in >>>>>>>>>> LocalDateFixture: >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> [Test] >>>>>>>>>> public void ValuesCanBeRetrievedFromLinqQueries() >>>>>>>>>> { >>>>>>>>>> object id; >>>>>>>>>> using (var session = sessionFactory.OpenSession()) >>>>>>>>>> using (var tx = session.BeginTransaction()) >>>>>>>>>> { >>>>>>>>>> id = session.Save(new Foo { Date = someDate }); >>>>>>>>>> tx.Commit(); >>>>>>>>>> } >>>>>>>>>> using (var session = sessionFactory.OpenSession()) >>>>>>>>>> using (var tx = session.BeginTransaction()) >>>>>>>>>> { >>>>>>>>>> var maxDate = session.Query<Foo>().Max(x => >>>>>>>>>> x.Date); >>>>>>>>>> Assert.AreEqual(someDate, maxDate); >>>>>>>>>> } >>>>>>>>>> } >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Thanks >>>>>>>>>> Diego >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On Mon, May 27, 2013 at 11:13 PM, Alexander I. Zaytsev < >>>>>>>>>> [email protected]> wrote: >>>>>>>>>> >>>>>>>>>>> Hi Diego, >>>>>>>>>>> >>>>>>>>>>> Can you please provide a query? >>>>>>>>>>> >>>>>>>>>>> Regards, >>>>>>>>>>> Alexander >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> 2013/5/28 Diego Mijelshon <[email protected]> >>>>>>>>>>> >>>>>>>>>>>> Hi guys. >>>>>>>>>>>> >>>>>>>>>>>> I'm trying to implement some NodaTime mapping support for NH. >>>>>>>>>>>> This is in a proof-of-concept state now, but there's already a >>>>>>>>>>>> Nuget package, NHibernate.NodaTime. You can check it out. >>>>>>>>>>>> Here's one of the first roadblocks I've found: when trying to >>>>>>>>>>>> query using LINQ aggregate methods, I run into the following >>>>>>>>>>>> exception: >>>>>>>>>>>> >>>>>>>>>>>> System.NotSupportedException : Don't currently support idents >>>>>>>>>>>> of type LocalDate >>>>>>>>>>>> at NHibernate.Hql.Ast.HqlIdent..ctor(IASTFactory factory, >>>>>>>>>>>> Type type) >>>>>>>>>>>> at NHibernate.Hql.Ast.HqlCast..ctor(IASTFactory factory, >>>>>>>>>>>> HqlExpression expression, Type type) >>>>>>>>>>>> at NHibernate.Hql.Ast.HqlTreeBuilder.Cast(HqlExpression >>>>>>>>>>>> expression, Type type) >>>>>>>>>>>> at >>>>>>>>>>>> NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitNhMax(NhMaxExpression >>>>>>>>>>>> expression) >>>>>>>>>>>> at >>>>>>>>>>>> NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.VisitExpression(Expression >>>>>>>>>>>> expression) >>>>>>>>>>>> at >>>>>>>>>>>> NHibernate.Linq.Visitors.HqlGeneratorExpressionTreeVisitor.Visit(Expression >>>>>>>>>>>> expression) >>>>>>>>>>>> at >>>>>>>>>>>> NHibernate.Linq.Visitors.SelectClauseVisitor.VisitExpression(Expression >>>>>>>>>>>> expression) >>>>>>>>>>>> at >>>>>>>>>>>> NHibernate.Linq.Visitors.SelectClauseVisitor.Visit(Expression >>>>>>>>>>>> expression) >>>>>>>>>>>> at >>>>>>>>>>>> NHibernate.Linq.Visitors.QueryModelVisitor.VisitSelectClause(SelectClause >>>>>>>>>>>> selectClause, QueryModel queryModel) >>>>>>>>>>>> at >>>>>>>>>>>> Remotion.Linq.Clauses.SelectClause.Accept(IQueryModelVisitor >>>>>>>>>>>> visitor, >>>>>>>>>>>> QueryModel queryModel) >>>>>>>>>>>> at >>>>>>>>>>>> Remotion.Linq.QueryModelVisitorBase.VisitQueryModel(QueryModel >>>>>>>>>>>> queryModel) >>>>>>>>>>>> at NHibernate.Linq.Visitors.QueryModelVisitor.Visit() >>>>>>>>>>>> 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.HQLExpressionQueryPlan.CreateTranslators(String >>>>>>>>>>>> expressionStr, IQueryExpression queryExpression, String >>>>>>>>>>>> collectionRole, >>>>>>>>>>>> Boolean shallow, IDictionary`2 enabledFilters, >>>>>>>>>>>> ISessionFactoryImplementor >>>>>>>>>>>> factory) >>>>>>>>>>>> at >>>>>>>>>>>> NHibernate.Engine.Query.HQLExpressionQueryPlan..ctor(String >>>>>>>>>>>> expressionStr, >>>>>>>>>>>> IQueryExpression queryExpression, String collectionRole, Boolean >>>>>>>>>>>> shallow, >>>>>>>>>>>> IDictionary`2 enabledFilters, ISessionFactoryImplementor factory) >>>>>>>>>>>> at >>>>>>>>>>>> NHibernate.Engine.Query.HQLExpressionQueryPlan..ctor(String >>>>>>>>>>>> expressionStr, >>>>>>>>>>>> IQueryExpression queryExpression, Boolean shallow, IDictionary`2 >>>>>>>>>>>> enabledFilters, 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, >>>>>>>>>>>> ref IQuery query, ref NhLinqExpression nhQuery) >>>>>>>>>>>> at NHibernate.Linq.DefaultQueryProvider.Execute(Expression >>>>>>>>>>>> expression) >>>>>>>>>>>> at NHibernate.Linq.DefaultQueryProvider.Execute(Expression >>>>>>>>>>>> expression) >>>>>>>>>>>> at System.Linq.Queryable.Max(IQueryable`1 source, >>>>>>>>>>>> Expression`1 selector) >>>>>>>>>>>> at [my code] >>>>>>>>>>>> >>>>>>>>>>>> It looks like the Hql Ast generation fails for anything that is >>>>>>>>>>>> not a native type. >>>>>>>>>>>> Is there a workaround from the Linq side (generators) or do I >>>>>>>>>>>> have to patch the core? >>>>>>>>>>>> >>>>>>>>>>>> Thanks! >>>>>>>>>>>> Diego >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> >>>>>>>>>>>> --- >>>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>>> Google Groups "nhibernate-development" group. >>>>>>>>>>>> To unsubscribe from this group and stop receiving emails from >>>>>>>>>>>> it, send an email to >>>>>>>>>>>> [email protected]. >>>>>>>>>>>> For more options, visit >>>>>>>>>>>> https://groups.google.com/groups/opt_out. >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> >>>>>>>>>>> --- >>>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>>> Google Groups "nhibernate-development" group. >>>>>>>>>>> To unsubscribe from this group and stop receiving emails from >>>>>>>>>>> it, send an email to >>>>>>>>>>> [email protected]. >>>>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out >>>>>>>>>>> . >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> >>>>>>>>>> --- >>>>>>>>>> You received this message because you are subscribed to the >>>>>>>>>> Google Groups "nhibernate-development" group. >>>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>>> send an email to >>>>>>>>>> [email protected]. >>>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> >>>>>>>>> --- >>>>>>>>> You received this message because you are subscribed to the Google >>>>>>>>> Groups "nhibernate-development" group. >>>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>>> send an email to >>>>>>>>> [email protected]. >>>>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> >>>>>>>> --- >>>>>>>> You received this message because you are subscribed to the Google >>>>>>>> Groups "nhibernate-development" group. >>>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>>> send an email to >>>>>>>> [email protected]. >>>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> >>>>>>> --- >>>>>>> You received this message because you are subscribed to the Google >>>>>>> Groups "nhibernate-development" group. >>>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>>> send an email to [email protected] >>>>>>> . >>>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>>> >>>>>> --- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "nhibernate-development" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to [email protected]. >>>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>>> >>>>>> >>>>>> >>>>> >>>>> -- >>>>> >>>>> --- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "nhibernate-development" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> For more options, visit https://groups.google.com/groups/opt_out. >>>>> >>>>> >>>>> >>>> >>>> -- >>>> >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "nhibernate-development" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to [email protected]. >>>> For more options, visit https://groups.google.com/groups/opt_out. >>>> >>>> >>>> >>> >>> >> -- >> >> --- >> You received this message because you are subscribed to the Google Groups >> "nhibernate-development" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> For more options, visit https://groups.google.com/groups/opt_out. >> >> >> > > -- > > --- > You received this message because you are subscribed to the Google Groups > "nhibernate-development" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to [email protected]. > For more options, visit https://groups.google.com/groups/opt_out. > > > -- --- You received this message because you are subscribed to the Google Groups "nhibernate-development" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.
