许多人与歧视者 - 没有继承权

时间:2017-11-06 15:24:05

标签: c# entity-framework-6

我至少有四个这样的实体

public class Item {
    public int ItemID { get; set; }
    public ICollection<Price> Prices;
    . . . . 
}


public class OtherThing {
    public int ThingID { get; set; }
    public ICollection<Price> Prices;
    . . . . 
}

这四个实体没有基类。让我们假设它们不够相似,不能有基类。

我也有这个实体:

public class Price {
    public int PriceID { get; set; }
    . . . .
}

目标是能够获得Set<Item>()Set<OtherThing>(),并使价格与正确价格保持一致。

一个想法是创建一个ItemPrice表和一个OtherThingPrice表,但是这些表是相同的并且一起改变,所以这个想法被抛弃了。

另一个想法是使用TPH,但是Price不是这四个+表的基类,所以它在语义上似乎是错误的,我不确定它是否会起作用(是吗?)

我的想法是做这样的事情:

public class PriceMap : EntityTypeConfiguration<Price>
{
    public PriceMap()
    {
        Map<Item>(m => m....);
        Map<OtherThing>(m => m....);
    }
}

但是有关这方面的所有信息都与基类有关。这适用于多对多关系吗?我想最终会得到一个很多 - 许多映射表,看起来像:

EntityToPriceTable
    EntityToPriceID
    EntityID
    EntityType
    PriceID

0 个答案:

没有答案