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.


Reply via email to