我有一个类继承了一个基类,而另一个类与该基类有关联。
例如:
- 基类:动物 - 子类1:狗 - 子类2:猫 - 相关的一对多表:疫苗记录 - 一只狗可以接受多种疫苗。这是通过List<Vaccination>实现的。 - 一只猫也可以接受多种疫苗。 - 疫苗记录只能与一只动物相关联。 - 疫苗记录不知道它是与狗还是猫相关联。(狗和猫使用不冲突的GUIDs。)
没有动物表;动物是一个抽象类。但是疫苗记录只知道动物,而不知道狗。(然而,EF知道两者。)我将我的类库分为两个部分,动物和疫苗记录在核心库中,而狗在另一个引用核心库的库中。
当使用Entity Framework Code First时,疫苗记录表会得到额外的列:Dog_ID,因为狗类的List<Vaccination>显式声明创建了一个推断。因此,这个列将疫苗记录映射到狗。这本来没问题,但是我想在多种类型的动物之间共享这个额外的列。例如,我想要一个Animal_ID,可以连接到狗或猫。
由于动物是抽象的,并且没有数据库表,我可以通过流畅的语句和/或属性/特性声明来完成这个操作吗?
例如:
- 基类:动物 - 子类1:狗 - 子类2:猫 - 相关的一对多表:疫苗记录 - 一只狗可以接受多种疫苗。这是通过List<Vaccination>实现的。 - 一只猫也可以接受多种疫苗。 - 疫苗记录只能与一只动物相关联。 - 疫苗记录不知道它是与狗还是猫相关联。(狗和猫使用不冲突的GUIDs。)
没有动物表;动物是一个抽象类。但是疫苗记录只知道动物,而不知道狗。(然而,EF知道两者。)我将我的类库分为两个部分,动物和疫苗记录在核心库中,而狗在另一个引用核心库的库中。
当使用Entity Framework Code First时,疫苗记录表会得到额外的列:Dog_ID,因为狗类的List<Vaccination>显式声明创建了一个推断。因此,这个列将疫苗记录映射到狗。这本来没问题,但是我想在多种类型的动物之间共享这个额外的列。例如,我想要一个Animal_ID,可以连接到狗或猫。
由于动物是抽象的,并且没有数据库表,我可以通过流畅的语句和/或属性/特性声明来完成这个操作吗?