我不知道怎么说这个。如果有人有更好的想法,请告诉我,以便我可以编辑标题。
我有一张包含物品的桌子。表格如下:
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?
我是否完全使用鉴别器或公式或其他东西?项目未映射或具有自己的表格。