Nhibernate compile hql queries in hbms when building the session
factory. And that the first test you must write “does my sf
configuratio actually works?“ .. Do you want syntax highlighting and
even intellisense? Have a look to my hql addin.

Advice; we are developers and we do write magic strings all the time,
even your c#-fancy-lambdas are strings, the fact that a code do builds
properly doesn't mean much, the real question is if yours
implementations satisfy your expectations (fka tests).

2010/12/20, Nadav Ben-Gal <[email protected]>:
> hey,
> as i said, HQL/Criteria doesn't help me... its the same as pure SQL in
> that case...
> it doesn't help me remove the magic strings aka - ca.ToHour/
> ca.FromHour/ca.StudyCard.id etc) that's why i asked for a QueryOver,
> if it is even possible...
>
> Thanks,
> Nadav Ben-Gal
>
>
> On Dec 19, 11:59 pm, Fabio Maulo <[email protected]> wrote:
>> uow.Session.CreateQuery("select SUM(((hour(ca.ToHour) -
>> hour(ca.FromHour)) * 10000000 * 60 * 60 ) + ((Minute(ca.ToHour) -
>> minute(ca.FromHour)) * 10000000 * 60)) from CalendarAppointment ca
>> where ca.StudyCard.id = :studyCard").SetInt64("studyCard",
>> appointment.StudyCard.Id).UniqueResult();
>>
>> or something like that
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> On Sun, Dec 19, 2010 at 5:21 PM, Nadav Ben-Gal <[email protected]> wrote:
>> > Hey,
>> > I'm trying to change this:
>> > uow.Session.CreateSQLQuery("select SUM(((hour(apt_to_hour) -
>> > hour(apt_from_hour)) * 10000000 * 60 * 60 ) + ((Minute(apt_to_hour) -
>> > minute(apt_from_hour)) * 10000000 * 60)) from calendar_appointments
>> > where apt_crd_id = :studyCard").SetInt64("studyCard",
>> > appointment.StudyCard.Id).UniqueResult();
>>
>> > sql query into QueryOver...
>>
>> > its getting the time difference (in ticks) between the apt_to_hour and
>> > apt_from_hour (both are DateTime fields, named ToHour and FromHour)
>> > i have tried doing something like this:
>>
>> > uow.Session.QueryOver<CalendarAppointment>()
>> >                                        .SelectList(list =>
>> > (list.SelectSum(ca =>
>> >                                            ((ca.ToHour.Hour -
>> > ca.FromHour.Hour) * 10000000 * 60 * 60) +
>> >                                            ((ca.ToHour.Minute -
>> > ca.FromHour.Minute) * 10000000 *
>> > 60))))
>> >                                        .SingleOrDefault<Int64>();
>>
>> > but i get the felling its not the right way... probably because NH
>> > yells at me with the following exception :
>> > Could not determine member from (((((ca.ToHour.Hour -
>> > ca.FromHour.Hour) * 10000000) * 60) * 60) + (((ca.ToHour.Minute -
>> > ca.FromHour.Minute) * 10000000) * 60))
>>
>> > is there a way to create that query in a queryover? or i'm doomed to
>> > stay with sql and magic strings? (don't care about HQL/Criteria since
>> > its only 1 record fetching and not an N+1 records fetch which kills me
>> > [in the matter of performance.. :)] and its not solving my magic
>> > strings problem...)
>>
>> > thanks a lot,
>>
>> > Nadav Ben-Gal
>>
>> > --
>> > You received this message because you are subscribed to the Google
>> > Groups
>> > "nhusers" group.> To post to this group, send email
>> > [email protected].
>> > To unsubscribe from this group, send email
>> > to>[email protected]<nhusers%[email protected]>
>> > .
>> > For more options, visit this group at
>> >http://groups.google.com/group/nhusers?hl=en.
>>
>> --
>> Fabio Maulo
>
> --
> You received this message because you are subscribed to the Google Groups
> "nhusers" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected].
> For more options, visit this group at
> http://groups.google.com/group/nhusers?hl=en.
>
>

-- 
Enviado desde mi dispositivo móvil

-- 
You received this message because you are subscribed to the Google Groups 
"nhusers" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/nhusers?hl=en.

Reply via email to