我有一个类继承了另一个类有关系的基类。EF代码第一抽象关系?
实施例:
- 基类:动物
- 子类1:狗
- 子类2:猫
- 相关一个一对多表:接种
- 狗可具有多次接种疫苗。这被实施为清单<疫苗接种>。
- 一只猫可以有多次接种疫苗。
- 疫苗接种记录只能有一个与之相关的动物。
- 疫苗接种不知道它是否与狗或猫有关。 (狗和猫使用非冲突的GUID)
没有动物表;动物是一个抽象类。但疫苗接种只知道动物,而不知道狗。 (然而,EF知道这两者。)我将我的类库拆分为Animal和Vaccination在核心库中,Dog在另一个引用核心库的库中。
当使用实体框架代码首先,疫苗接种表获得额外的列:Dog_ID,作为Dog类的列表<疫苗接种>显式声明正在创建一个推论。因此,这一栏将疫苗接种记录映射到狗身上。这很好,除了我想分享多个类型的动物的额外列。因此,例如,如果没有Dog_ID和Cat_ID,我想要有一个可以加入狗或猫的Animal_ID。
由于动物是抽象的,没有数据库表,我可以用流利的语句和/或属性/属性声明来实现吗?
”关系必须遵循相同的规则,就像直接在数据库中创建它们一样。“从技术上讲,我可以将一列作为虚拟外键与SQL Server中的多个表联系起来。我希望我可以在EF CF中做到这一点。 –
从技术上讲,你可以关联多个关系中的一列,但这将意味着度假有AnimalId与狗,猫和其他任何相关,并且一旦你填写该列,每个“父”表必须有相同的记录ID =你的假期将永远相关的狗,猫,... –
检查我在答案中提供的TPT映射的链接。动物仍然是抽象的。 –