实体框架表每层次继承

本文关键字:层次 继承 框架 实体 | 更新日期: 2023-09-27 18:07:10

我正试图实现表每层次继承与我的一些数据库表,例如Address。我想从Address中导出3个类,它们是EmployeeAddress, CustomerAddress, SupplierAddress

+-------------------+------------------------+
| Address           |> EmployeeAddress       |
+-------------------+------------------------+
| ID                | ..                     |
| OwnerID           | EmployeeID             |
| OwnerCategory     | (condition: where = 0) |
| Street_1          | ..                     |
| Street_2          | ..                     |
| City              | ..                     |
| Province          | ..                     | 
| PostalCode        | ..                     |
+-------------------+------------------------+
                    |> CustomerAddress       |
                    +------------------------+
                    | ..                     |
                    | EmployeeID             |
                    | (condition: where = 1) |
                    | ..                     |
                    | ..                     |
                    | ..                     |
                    | ..                     | 
                    | ..                     |
                    +------------------------+
                    |> SupplierAddress       |
                    +------------------------+
                    |  ..                    |
                    | EmployeeID             |
                    | (condition: where = 2) |
                    | ..                     |
                    | ..                     |
                    | ..                     |
                    | ..                     | 
                    | ..                     |
                    +------------------------+

问题是我一直得到错误…

Address具体,且包含OwnerCategory属性时:

错误3032:映射片段从行开始的问题条件成员的地址。带有条件other的OwnerCategorythan 'IsNull=False'被映射。移除条件地址。或从映射中删除。

Address抽象且包含OwnerCategory属性时:

从第178行开始的映射片段中的问题:条件成员的地址。使用条件不是"IsNull=False"的OwnerCategory'映射。移除地址的条件。OwnerCategory或从映射中删除它

Address具体不包含OwnerCategory属性时:

DtcInvoicer.Database。地址'不包含的定义'OwnerCategory'和没有扩展方法'OwnerCategory'接受aDtcInvoicer.Database类型的第一个参数。可以找到地址(您是否缺少using指令或汇编引用?)

从第177,195行开始的映射片段中的问题:EntityTypes模型。地址,模型。EmployeeAddress被映射到相同的行在表地址中。映射条件可以用来区分这些类型映射到的行。

(我已经有条件设置(当OwnerCategory = 0)

Address时,抽象不包含OwnerCategory属性:

DtcInvoicer.Database。地址'不包含的定义'OwnerCategory'和没有扩展方法'OwnerCategory'接受aDtcInvoicer.Database类型的第一个参数。可以找到地址(您是否缺少using指令或汇编引用?)

任何帮助都是感激的,提前感谢。

实体框架表每层次继承

由于您在继承的条件中使用OwnerCategory,因此它不能映射到属性。看起来你也应该将Address设置为抽象。确保从模型中删除了该属性,并修改了使用它的所有代码。你提到的非映射错误似乎是编译器找不到特定成员时的标准错误,所以一定要修复这些点。