Здравствуйте.
Не могу найти как в 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_]