实体框架表每层次继承
本文关键字:层次 继承 框架 实体 | 更新日期: 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
设置为抽象。确保从模型中删除了该属性,并修改了使用它的所有代码。你提到的非映射错误似乎是编译器找不到特定成员时的标准错误,所以一定要修复这些点。