У меня есть абстрактный базовый класс и унаследованные объекты poco. Я использую таблицу для наследования подкласса с помощью бесплатного nhibernate 1.1 automapping.
Наследование класса выглядит следующим образом
Node (абстрактный класс) Место: Node Активы: Node
Node класс - это в основном древовидная структура.
public abstract class Node
{
public virtual int Id
{
get;
set;
}
public virtual Node ParentNode
{
get;
set;
}
public virtual ICollection<Node> ChildNodes
{
get;
set;
}
}
Теперь проблема заключается в том, когда я получаю объект Asset из базы данных и делаю objAsset.ParentNode, я могу использовать ParentNode для Asset или Place, но если я делаю что-то вроде objAsset.ParentNode.ParentNode.ParentNode, тогда ParentNode появляется как тип "{Castle.Proxies.NodeProxy}", и я не могу его отбросить на место или активы.
Я знаю, что в моем случае конечный результат должен быть типа Place, поскольку запись существует в базе данных в таблице Place, но по какой-то причине NHibernate не может ленить загрузить ее в фактический производный тип, базовый класс Node.
Любая идея?
В ожидании Набиль