Jak zmapować jednostkę NHibernate do zapytania

Widziałem wiele tego przykładów i, o ile mogę powiedzieć, mój plik HBM ma ten sam wzór, ale nie działa. Po pierwsze, plik:

<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping default-cascade="save-update" xmlns="urn:nhibernate-mapping-2.2">
  <class name="ThinAir" mutable="false" lazy="true" >
    <id name="JobId">
      <generator class="native" />
    </id>
    <property name="UserLogin"/>
    <property name="UserEmail"/>
    <property name="DateProcessed"/>
    <loader query-ref="myquery"/>
  </class>
  <sql-query name="myquery">
    <return class="ThinAir">
      <return-property name="JobID" column="JobId"/>
      <return-property name="userLogin" column="UserLogin"/>
      <return-property name="DateProcessed" column="DateProcessed"/>
      <return-property name="userEmail" column="UserEmail"/>
    </return>
    <![CDATA[
    SELECT DISTINCT JobID,
    userLogin,
    DateProcessed,
    useremail
    FROM         dbo.someothertable
    ]]>
  </sql-query>
</hibernate-mapping>

„myquery” samo w sobie działa. To znaczy, jeśli zadzwonię

var x = session.GetNamedQuery("myquery").List();

Dostaję prawidłową listęThinAir przedmioty.

Ale kiedy próbuję dostać listęThinAirs lubię to:

var submissions = session.CreateCriteria<ThinAir>().List<ThinAir>();

dostaję

Metoda testowania testThinAir zgłosiła wyjątek: NHibernate.Exceptions.GenericADOException: nie można wykonać zapytania [SELECT this_.JobId jako JobId16_0_, this_.UserLogin jako UserLogin16_0_, this_.UserEmail jako UserEmail16_0_, this_.DateProcessed jako DateProc4_16_0_ Z tegoThinAir to_]

Moja interpretacja tego zjawiska polega na tym, że NH ignoruje moje<loader> tag i próbując załadować dane z tabeli podstawowej, która domyślnie przyjmuje nazwęThinAir ponieważ jest to nazwa klasy encji, tylko tamnie jest każdyThinAir tabela, stąd komunikat o błędzie.

Czy ta interpretacja jest prawidłowa? W każdym razie, co robię źle i jak mogę to zrobić dobrze?

Z góry dziękuję.

Michael

questionAnswers(1)

yourAnswerToTheQuestion