如何将多个类(相同的实体但具有扩充属性)映射到同一个数据库表?

时间:2017-06-08 13:53:50

标签: mysql entity-framework-6 dbcontext

我有一个多模块项目,每个模块都定义了自己的实体。主程序扫描表示模块的程序集,以获取每个实体的EntityTypeConfiguration<>(通过modelBuidler.LoadFromAssembly())。

情景:

来自Product

实体module1已映射到表products

实体WarehouseProduct Product继承(在上面定义)并添加一些与仓储相关的其他属性,并映射到相同的表 products

两个实体代表同一个对象它只是创建一些有界上下文,每个只提供对相关属性的访问权!

问题:

我无法弄清楚如何做到这一点! DbContext(当试图创建数据库时)抱怨两个类都不能共享同一个表!

注意

两个类ProductWarehouseProduct都有一个共同的祖先,它将公共属性分组。

修改1:

即使尝试将公共部分映射为ComplexType也不起作用,DbContext会抱怨实体ProductWarehouseProduct不在同一类型层次结构中。

1 个答案:

答案 0 :(得分:0)

我使用 contextualized (我不知道该单词是否存在;)DbMigrations配置(每个配置特定于单个模块并具有不同的ContextKey)来解决我的问题。