Thanks's all for responding!

In the autoMappingExpressions I do state it's a component type:
autoMappingExpressions.IsComponentType = type => (type == typeof 
(YearAndMonth));

Rewriting the queries is the last resort in my humble opinion... 

I've googled a bit regarding ExpressionVisitor but can't really find a good 
start. Any hints on how I could use an ExpressionVisitor?

Erik

On Monday, April 18, 2016 at 10:38:10 PM UTC+2, Gunnar Liljas wrote:
>
> It comes from the fact that the old Linq provider (which has been 
> completely replaced), just mapped the Linq query to an ICriteria query,
>
> A >= B
>
> becomes
>
> Restrictions.Ge(A,B)
>
> which is converted to
>
> A.Property1 >= B.Property1 AND A.Property2 >= B.Property2 AND A.Property3 
> >= B.Property3 AND .....
>
>
> You will have to rewrite your queries to explicitly query on both 
> properties. Either manually or by using an ExpressionVisitor.
>
> /G 
>
> 2016-04-18 16:10 GMT+02:00 Erik H <erikho...@gmail.com <javascript:>>:
>
>> Okay, it might not be correct.... but where does the GE or LT comes 
>> from...? Any ideas?
>>
>>
>> On Monday, April 18, 2016 at 3:31:26 PM UTC+2, Oskar Berggren wrote:
>>
>>>
>>>
>>> 2016-04-18 12:41 GMT+01:00 Erik H <erikho...@gmail.com>:
>>>
>>>>
>>>>         public static bool operator >=(JaarEnMaand jaarEnMaand1, 
>>>>> JaarEnMaand jaarEnMaand2)
>>>>>         {
>>>>>             if (jaarEnMaand1.Jaar == jaarEnMaand2.Jaar)
>>>>>             {
>>>>>                 return (jaarEnMaand1.Maand >= jaarEnMaand2.Maand);
>>>>>             }
>>>>>             return (jaarEnMaand1.Jaar >= jaarEnMaand2.Jaar);
>>>>>         }
>>>>>
>>>>>  
>>>
>>>>
>>>> *Model:*
>>>>
>>>>> public class AsapInput : Entity{ 
>>>>
>>>>         public virtual JaarEnMaand AsapVerwerkingsPeriode { get; set; }
>>>>> } 
>>>>>  
>>>>
>>>>
>>>> *LINQ statement:*
>>>>
>>>>>                     .Where(ai => ai.AsapVerwerkingsPeriode >= 
>>>>> periodeVanaf && ai.AsapVerwerkingsPeriode <= periodeTm && ( //niet 
>>>>> geblokkeerde beschikbaarstellingen en premie inhoudingen
>>>>>                         (ai.Type == AsapInputType.Beschikbaarstelling 
>>>>> || ai.Type == AsapInputType.BrutoPremieInhouding || ai.Type == 
>>>>> AsapInputType.NettoPremieInhouding) &&
>>>>>                         ai.Uitkeringscomponent.Bron != 
>>>>> UitkeringscomponentBron.HandmatigplanUC));
>>>>
>>>>  
>>>>
>>>>                     .Where(ai => ai.Uitkeringsplan.Contractnummer == 
>>>>> contract || ai.Uitkeringsplan.Contractnummer == contract.PadLeft(20, 
>>>>> '0')) 
>>>>
>>>>
>>>>  
>>>
>>>>
>>>> *CORRECT* Generated SQL where statment in *NHibernate 2.1.2.400*:
>>>>
>>>>> WHERE           (( 
>>>>>                                                 
>>>>> this_.asapverwerkingsperiodemaand >= @p0 
>>>>>                                 AND             
>>>>> this_.asapverwerkingsperiodejaar >= @p1 
>>>>>
>>>>
>>>
>>> But this is NOT correct! At least it doesn't match your C# 
>>> implementation for arbitrary values of periods:
>>> C#     2005-06 >= 2004-07 => ((2005==2004 AND 06>=07)) OR (2005>=2004) 
>>> => TRUE
>>> SQL  2005-06 >= 2004-07 => (2005>=2004 AND 06>=07) => FALSE
>>>
>>>
>>> /Oskar
>>>
>>>
>>>
>>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "nhusers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to nhusers+u...@googlegroups.com <javascript:>.
>> To post to this group, send email to nhu...@googlegroups.com 
>> <javascript:>.
>> Visit this group at https://groups.google.com/group/nhusers.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to nhusers+unsubscr...@googlegroups.com.
To post to this group, send email to nhusers@googlegroups.com.
Visit this group at https://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.

Reply via email to