Hi guys,
I have got an abstract base class and inherited poco entities. I am using table per subclass inheritance with fluent nhibernate 1.1 automapping.
The class inheritance looks like follows
Node (abstract class) Place : Node Asset : Node
Node class is basically a tree structure.
public abstract class Node
{
public virtual int Id
{
get;
set;
}
public virtual Node ParentNode
{
get;
set;
}
public virtual ICollection<Node> ChildNodes
{
get;
set;
}
}
Now the problem is when I get an object of Asset from database and do objAsset.ParentNode, I can cast ParentNode to Asset or Place, but if I do something like objAsset.ParentNode.ParentNode.ParentNode, then the ParentNode appears as of type "{Castle.Proxies.NodeProxy}" and I am unable to cast it to Place or Asset.
I know that in my case the end result should be of type Place, as the record exists in the database in Place table but for some reason NHibernate can't lazy load it to the actual derived type, it is only castable to base class Node.
Any idea?
Awaiting Nabeel