Just to be sure, you're talking about posting in your blog, right?

On Sep 9, 1:14 pm, Fabio Maulo <[email protected]> wrote:
> I'm preparing a post about this kind of matters.
>
> 2009/9/9 Hitt <[email protected]>
>
>
>
>
>
>
>
> > I just recently converted a rather simple webapp I created that was
> > using straight SQL/Datasets to NHibernate.  I basically want to be
> > able to do a query like this (in Linq2NHibernate preferably, but
> > Criteria or HQL is fine)
>
> > SELECT ID,ClientID,...,
> >               (SELECT COUNT(*) FROM Clock WHERE ClientID=c.ID AND
> > Status='ON') AS ClocksUp
> >               (SELECT COUNT(*) FROM Clocks WHERE ClientID=c.ID AND
> > Status='OFF') AS ClocksDown
> > FROM Client AS c
>
> > I've tried the standard query, (which I figured wouldn't work as L2NH
> > specifically says it doesn't support subqueries in projections yet)
>
> > from client session.Linq<Client>
> > select new { Client = client, ClocksUp = client.Clocks.Count(c=>
> > c.Status == "ON"), ClocksDown =  client.Clocks.Count(c=> c.Status ==
> > "OFF") }
>
> > This gives an error saying it can't bind "Clocks.ID".
>
> > So I want to be able to do a query equivalent to this that will fly in
> > L2NH, or with Criteria queries or HQL.  I've made several attempts in
> > each and just can't get anything that works.
>
> > Anyone have any ideas of how to go about this?
>
> > Thanks.
>
> > --------------------------------  Mapping files
> > below------------------------------------------
> > Client
>
> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-
> > access="property" auto-import="true" default-cascade="none" default-
> > lazy="true">
> > <class xmlns="urn:nhibernate-mapping-2.2" name="Domain.Client"
> > table="Client">
> > <id name="ID" type="System.Int32">
> > <column name="ID"/>
> > <generator class="identity"/>
> > </id>
> > <property name="Status"
> > type="FluentNHibernate.Mapping.GenericEnumMapper`1
> > [[Domain.ClientStatus]], FluentNHibernate, Version=1.0.0.593,
> > Culture=neutral, PublicKeyToken=8aa435e3cb308880">
> > <column name="Status"/>
> > </property>
> > <property name="ClientID" type="System.String">
> > <column name="ClientID"/>
> > </property>
> > <property name="Updated" type="System.DateTime">
> > <column name="Updated"/>
> > </property>
> > <property name="LastStatusUpdate" type="System.Nullable`1
> > [[System.DateTime]]">
> > <column name="LastStatusUpdate"/>
> > </property>
> > <property name="DataReaderStatus" type="System.Nullable`1
> > [[System.Boolean]]">
> > <column name="DataReaderStatus"/>
> > </property>
> > <property name="DataMoverStatus" type="System.Nullable`1
> > [[System.Boolean]]">
> > <column name="DataMoverStatus"/>
> > </property>
> > <bag inverse="true" name="Clocks">
> > <key>
> > <column name="ClientID"/>
> > </key>
> > <one-to-many class="Domain.Clock"/>
> > </bag>
> > </class>
> > </hibernate-mapping>
>
> > Clock:
>
> > <hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" default-
> > access="property" auto-import="true" default-cascade="none" default-
> > lazy="true">
> > <class xmlns="urn:nhibernate-mapping-2.2" name="Domain.Clock"
> > table="Clock">
> > <id name="ID" type="System.Int32">
> > <column name="ID"/>
> > <generator class="identity"/>
> > </id>
> > <property name="ClockID" type="System.Int32">
> > <column name="ClockID"/>
> > </property>
> > <property name="Description" type="System.String">
> > <column name="Description"/>
> > </property>
> > <property name="Status" type="System.String">
> > <column name="Status"/>
> > </property>
> > <property name="LastUpdate" type="System.DateTime">
> > <column name="LastUpdate"/>
> > </property>
> > <many-to-one class="Domain.Client" name="Client">
> > <column name="ClientID"/>
> > </many-to-one>
> > </class>
> > </hibernate-mapping>
>
> --
> 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
-~----------~----~----~----~------~----~------~--~---

Reply via email to