如何将多个类(相同的实体但具有增强的属性)映射到同一个数据库表?
问题描述:
我有一个多模块项目,其中每个模块定义自己的实体。主程序扫描代表模块的组件以获取每个实体的EntityTypeConfiguration<>
(通过modelBuidler.LoadFromAssembly()
)。如何将多个类(相同的实体但具有增强的属性)映射到同一个数据库表?
场景:
实体Product
从module1
被映射到表products
实体WarehouseProduct
其中继承Product
(上文所定义),并添加与仓储一些其他属性和被映射到同一张表products
。
两个实体代表相同的对象它只是创造一些限界上下文每个给予只能访问相关属性的事!
问题:
我无法弄清楚如何做到这一点! DbContext(当试图创建数据库时)抱怨这两个类不能共享同一个表!
注意:
两个类Product
和WarehouseProduct
有一个共同的祖先,其群体的公共属性。
编辑1:
甚至试图映射为的ComplexType没有工作的共同部分,的DbContext抱怨说,两个实体Product
和WarehouseProduct
不在同一类型层次。
答
我用语境(我不知道事件如果该单词是否存在;))DbMigrations配置(特定于单个模块,并用不同ContextKey
每个配置)来解决我的问题。