我有一个名为Asset的实体,类似于以下内容:
public class Asset
{
public int Id { get; set; }
public int TypeId { get; set; }
public int AddedById { get; set; }
public DateTime DateTimeAdded { get; set; }
public virtual AssetType Type { get; set; }
public virtual ITUser AddedBy { get; set; }
}
我希望能够拥有一个链接到单个表的导航属性,但该表依赖于它的资产类型。例如,如果资产属于“打印机”类型,那么我希望导航属性链接到PrinterDetail实体。我最初的解决方法是在Asset实体中使用未使用的列,但我认为这是浪费或不好的做法。有什么东西我可以忽略,或者这只是一些无法做到的事情?
感谢您给出的任何建议。
答案 0 :(得分:0)
如果你想按类型导航printerDetail你可以使用entityfraemwork继承策略:
每个层次结构表(TPH) 每种类型的表(TPT) 每个混凝土类别(TPC)表
您必须为每种类型创建模型并使用TPT策略。 然后你可以使用流畅的api进行配置映射。 parent Model(Asset)必须定义为抽象类,而AssesTypes必须是Parent的驱动。