动态实体导航属性

时间:2018-01-14 01:08:29

标签: c# entity-framework

我有一个名为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实体中使用未使用的列,但我认为这是浪费或不好的做法。有什么东西我可以忽略,或者这只是一些无法做到的事情?

感谢您给出的任何建议。

1 个答案:

答案 0 :(得分:0)

如果你想按类型导航printerDetail你可以使用entityfraemwork继承策略:

每个层次结构表(TPH) 每种类型的表(TPT) 每个混凝土类别(TPC)表

您必须为每种类型创建模型并使用TPT策略。 然后你可以使用流畅的api进行配置映射。 parent Model(Asset)必须定义为抽象类,而AssesTypes必须是Parent的驱动。

more information