我正在尝试使用我的一些数据库表来实现每个层次结构继承的表,例如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:从行开始映射片段时出现问题 178:条件成员'addresses.OwnerCategory',条件为other 比'IsNull = False'被映射。要么删除条件 addresses.OwnerCategory或从映射中删除它。
当Address
抽象且包含OwnerCategory
属性时:
从第178行开始映射片段的问题:条件成员 'address.OwnerCategory'的条件不是'IsNull = False' 被映射。删除addresses.OwnerCategory或上的条件 将其从映射中删除。
当Address
具体时,不包含OwnerCategory
属性:
'DtcInvoicer.Database.Address'不包含。的定义 'OwnerCategory'并没有扩展方法'OwnerCategory'接受a 可以找到类型'DtcInvoicer.Database.Address'的第一个参数 (您是否缺少using指令或程序集引用?)
和
从第177,195行开始映射片段的问题:EntityTypes Model.Address,Model.EmployeeAddress被映射到相同的行 在表地址中。映射条件可用于区分 这些类型映射到的行。
(我已经设置了条件(当OwnerCategory = 0时)
当Address
抽象且不包含OwnerCategory
属性时:
'DtcInvoicer.Database.Address'不包含。的定义 'OwnerCategory'并没有扩展方法'OwnerCategory'接受a 可以找到类型'DtcInvoicer.Database.Address'的第一个参数 (您是否缺少using指令或程序集引用?)
提前感谢任何帮助。
答案 0 :(得分:8)
由于您在继承条件中使用OwnerCategory
,因此无法将其映射到属性。看起来你也应该将Address
设置为抽象。确保从模型中删除该属性并修改使用它的任何代码。当编译器找不到特定成员时,您提到的非映射错误似乎是标准错误,因此请务必修复这些错误。