This group to discuss development *OF *NHibernate, not NHibernate usage

Please use nh-users group:
https://groups.google.com/forum/?fromgroups#!forum/nhusers


2013/1/15 Aleksandr Petrov <[email protected]>

> True, but this does not solve the original problem. The problem is that if
> in the select I am accessing Key object several times, eg if I will just do
> select new  { g.Key.Year, g.Key.ResultId } then I will get duplicated
> selects in the sql. And the number of duplicates will be the number of time
> I has accessed Key object.
>
>
> On Monday, 14 January 2013 19:27:07 UTC+2, Gunnar Liljas wrote:
>
>> Since you're grouping on the month, it doesn't make sense to select it
>> with an aggregate (min).
>>
>> /g
>>
>> On 14 jan 2013, at 16:35, Aleksandr Petrov <[email protected]>
>> wrote:
>>
>> > Hi,
>> >
>> > My linq query:
>> >
>> > from result in results
>> > group result by new
>> >  {
>> >           Year = result.Timestamp.Year,
>> >           Month = result.Timestamp.Month,
>> >           ResultId = result.Id
>> >  }
>> >  into g
>> >  select new { g.Key.Year, g.Key.ResultId, MinMonth = g.Min(y =>
>> y.Timestamp.Month) };
>> >
>> > generated sql:
>> >
>> > select
>> >         datepart(year, simplemeas0_.StartTime) as col_0_0_,
>> >         datepart(month, simplemeas0_.StartTime) as col_1_0_,
>> >         simplemeas0_.Id as col_2_0_,
>> >         datepart(year, simplemeas0_.StartTime) as col_3_0_,
>> >         datepart(month, simplemeas0_.StartTime) as col_4_0_,
>> >         simplemeas0_.Id as col_5_0_,
>> >         cast(min(datepart(month, simplemeas0_.StartTime)) as INT) as
>> col_6_0_
>> >     from
>> >         Measurement simplemeas0_
>> >     group by
>> >         datepart(year, simplemeas0_.StartTime) ,
>> >         datepart(month, simplemeas0_.StartTime) ,
>> >         simplemeas0_.Id
>> >
>> > It generates correct sql if in the select is just new { g.Key },
>> instead of new { g.Key.Year, g.Key.ResultId }
>> >
>> > Is it bug or there is a way to avoid duplication in sql select?
>>
>

Reply via email to