joined-subclass и named SQL queries
От: RulCom  
Дата: 28.09.07 11:23
Оценка:
Здравствуйте.

Не могу найти как в named SQL queries указать joined-subclass.

есть такая структура классов:
public class BaseClass
{
  private int id;
  private string name;
  private string fullName;

  public virtual int Id
  {
    get { ... }
    set { ... }
  }
  ... и тд для всех остальных свойств ...
}

public class SubClass : BaseClass
{
  private string body;

  public virtual string Body
  {
    get { ... }
    set { ... }
  }
}


и вот такой мапинг:
<class name="BaseClass" table="maintable">
  <id name="Id" column="Id">
    <generator class="identity" />
  </id>
  <property name="Name" column="Name" type="string" not-null="true"/>
  <property name="FullName" column="FullName" type="string"/>

  <joined-subclass name="SubClass" table="subtable">
    <key column="Id"/>
    <property name="Body" type="string"/>
  </joined-subclass>
</class>


при обычном использовании классов, все работает.
Но возникла необходимость получения списка объектов с использованием хранимки. Причем через хранимку получить нужно только объекты класса BaseClass, информация относящаяся к классам потомкам не нужна...

Сделал такой запрос:
<sql-query name="selectObject">
  <return alias="object" class="BaseClass">
    <return-property name="Id" column="Id"/>
    <return-property name="Name" column="Name"/>
    <return-property name="FullName" column="FullName"/>
  </return>
  exec usp_GetObject
</sql-query>


И в результате, если в мапинге не описан <joined-subclass> оно работает, но при включении в мапинг подклассов сразу слетает с сообщением:
[IndexOutOfRangeException: clazz_0_]
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.