Thanks for the quick reply!

Good spot regarding > operator, but there are several operators 
implemented, I didn't put them all in this post. Implemented operators:
==, !=, >, >=, <, <=, +, -

Are there any options you see that I can do to get it back working?


On Monday, April 18, 2016 at 11:55:29 AM UTC+2, Oskar Berggren wrote:
>
> I don't think these operators have ever been supported on multi-column 
> user types. Note that the behaviour you show for 2.1.2.400 also doesn't 
> match the implementation in your operator>().
>
> /Oskar
>
> 2016-04-18 7:56 GMT+01:00 Erik H <[email protected] <javascript:>>:
>
>> I've got an struct that implements some operators.
>>
>>     public struct YearAndMonth{
>>>         private int _month;
>>>         /// <summary>
>>>         /// Month, between 1 and 12.
>>>         /// </summary>
>>>         public int Month
>>>         {
>>>             get
>>>             {
>>>                 if (_month == 0)
>>>                 {
>>>                     _month = 1;
>>>                 }
>>>                 return _month;
>>>             }
>>>             private set // for NHibernate
>>>             {
>>>                 if (value < 1 || value > 12)
>>>                 {
>>>                     throw new ArgumentOutOfRangeException("value");
>>>                 }
>>>                 _month = value;
>>>             }
>>>         }
>>>         private int _year;
>>>         /// <summary>
>>>         /// Year, between 1 and 9999.
>>>         /// </summary>
>>>         public int Year
>>>         {
>>>             get
>>>             {
>>>                 if (_year == 0)
>>>                 {
>>>                     _year = 1;
>>>                 }
>>>                 return _year;
>>>             }
>>>             private set // for NHibernate
>>>             {
>>>                 if (value < 1 || value > 9999)
>>>                 {
>>>                     throw new ArgumentOutOfRangeException("value");
>>>                 }
>>>                 _year = value;
>>>             }
>>>         }
>>>
>>         // This is just one of the operators, others are implemented too!!
>>>  
>>
>>         public static bool operator >(YearAndMonth obj1, YearAndMonth 
>>> obj2)
>>>         {
>>>             if (obj1.Year == obj2.Year )
>>>             {
>>>                 return (obj1.Month > obj2.Month);
>>>             }
>>>             return (obj1.Year > obj2.Year);
>>>         }
>>>     }
>>
>>
>> My class looks a bit like this:
>>
>>     class MyObj {
>>>        public YearAndMonth Period {get; set;}
>>>     }
>>
>>
>> I've got a where statement like this:
>>
>>     .Where(_ => _.Period >= startPeriod && _.Period <= endPeriod)
>>
>>
>> When NHibernate translates the where statement it generates strange SQL 
>> and throws a GenericADOException:
>>
>>     WHERE           ( 
>>>                                 myobj0_.periodmonth ge @p0 
>>>                 AND             myobj0_.periodyear ge @p1) 
>>>     AND             ( 
>>>                                 myobj0_.periodmonth le @p2 
>>>                 AND             myobj0_.periodyear le @p3) 
>>
>>
>> How can I get my where statement working without modifying the Linq 
>> statements? I've upgraded NHibernate from version 2.1.2.400 to 4.0.4.400
>>
>>
>> Where statement that is produced by NHibernate 2.1.2.400 with 
>> NHibernate.Linq 
>> 1.1.0.1001:
>>
>>>
>>>     WHERE           ( 
>>>                                                 this_.periodmonth  >= 
>>> @p0 
>>>                                 AND             this_.periodyear >= @p1 
>>>                                 AND             this_.periodmonth <= @p2 
>>>                                 AND             this_.periodyear <= @p3)
>>
>>
>> The configured dialect is NHibernate.Dialect.MsSql2008Dialect and 
>> driver_class is NHibernate.Driver.SqlClientDriver. 
>>
>> How can I make NHibernate generate the 'old' >= and <= ??
>>
>> -- 
>> 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 [email protected] <javascript:>.
>> To post to this group, send email to [email protected] 
>> <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 [email protected].
To post to this group, send email to [email protected].
Visit this group at https://groups.google.com/group/nhusers.
For more options, visit https://groups.google.com/d/optout.

Reply via email to