I have abstract class MultipleItems which has list of OrderItem objects:
public abstract class MultipleItems
{
...
private IList<OrderItem> _orderItems = new List<OrderItem>();
public virtual IList<OrderItem> OrderItems {
get
{
return this._orderItems;
}
set { }
}
...
}
Class Menu inherits class MultipleItems:
public class Menu : MultipleItems
{
public virtual string Name { get; set; }
public Menu(string name)
{
Name = name;
}
public Menu() { }
}
I'm mapping it table-per-type:
public class MultipleItemsMap : ClassMap<MultipleItems>
{
public MultipleItemsMap()
{
Id(i => i.id);
Map(i => i.Total);
Map(i => i.Discount);
HasMany(i => i.OrderItems).Cascade.All();
}
}
public class MenuMap : SubclassMap<Menu>
{
public MenuMap()
{
KeyColumn("id");
Map(i => i.Name);
}
}
Problem is, when I try to load menus with, for example, this:
session.QueryOver<Menu>().Fetch(i => i.OrderItems).Eager.List();
List is empty when it shouldn't be... I also checked SQL query and it's all there, but just isn't loading.
EDIT: OrderItem class:
public class OrderItemMap : ClassMap<OrderItem>
{
public OrderItemMap()
{
Id(x => x.id);
Map(x => x.Total);
Map(x => x.Qty);
Map(x => x.ItemName);
Map(x => x.ItemType);
References(x => x.Item).Not.LazyLoad();
}
}