我至少有四个这样的实体
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