あるレベルでタイプごとにテーブルを持ち、別のレベルで階層用に 1 つのテーブルを持ちたいとします。出来ますか?
説明はこちら→
私はこれらのクラスを持っています:
public class BaseItem
{
public int Id{ get; set; }
}
public class Item : BaseItem
{
}
public class Child1 : Item
{
}
public class Child2 : Item
{
}
「Child1」と「Child2」ではなく、「BaseItem」と「Item」のテーブルが必要です
私はこのマッピングを試します:
public class BaseItemMap : ClassMap<BaseItem>
{
public BaseItemMap()
{
Id(p => p.Id).Column("BaseItemId");
}
}
public class ItemMap : SubclassMap<Item>
{
public Item()
{
KeyColumn("BaseItemId");
//note: this line does not compiled
// because "ItemMap" should be of "SubclassMap" and
// I can not use "ClassMap"!
DiscriminateSubClassesOnColumn("ItemType");
}
}
public class Child1Map : SubclassMap<Child1>
{
public BuildingNewsMap()
{
DiscriminatorValue(@"Child1");
}
}
public class Child2Map : SubclassMap<Child2>
{
public BuildingNewsMap()
{
DiscriminatorValue(@"Child2");
}
}
お願い助けて!