流畅的NHibernate:通过区分列来引用具有一个变量的多个表?

时间:2013-04-26 07:35:04

标签: c# fluent-nhibernate nhibernate-mapping fluent-nhibernate-mapping

我不知道怎么说这个。如果有人有更好的想法,请告诉我,以便我可以编辑标题。

我有一张包含物品的桌子。表格如下:

ItemList
---------
Id [PK]
ItemTypeId [FK]
ItemId [FK]

ItemTypeId表示它是什么类型的项目。该列表看起来像这样:

Id | Description
----------------
1  | Sword
2  | Gun
3  | Foot

如果物品是剑,它会进入剑表,如果它是枪,它会进入枪表等。

枪,剑和脚都看起来像这样,还有其他字段:

Gun/Sword/Foot
--------------
Id [PK]
Name
Description
Cost

我的班级声明如下:

public class ItemList
{
    public virtual int Id { get; set; }
    public virtual int ItemTypeId { get; set; }
    public virtual Item MyItem { get; set; }
}

public class Item
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual int Cost { get; set; }
}

public class Gun/Sword/Foot : Item
{
    public virtual int Id { get; set; }
    public virtual string Name { get; set; }
    public virtual string Description{ get; set; }
    public virtual int Cost { get; set; }
}

如何映射这个以便Fluent选择适当的表来填充Item,具体取决于ItemTypeId?

我是否完全使用鉴别器或公式或其他东西?项目未映射或具有自己的表格。

0 个答案:

没有答案