c# – 每个层次结构继承的实体框架表

前端之家收集整理的这篇文章主要介绍了c# – 每个层次结构继承的实体框架表前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图用我的一些数据库表实现每个层次结构继承的表,例如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属性时:

Error 3032: Problem in mapping fragments starting at line
178:Condition member ‘addresses.OwnerCategory’ with a condition other
than ‘IsNull=False’ is mapped. Either remove the condition on
addresses.OwnerCategory or remove it from the mapping.

当Address是abstract并包含OwnerCategory属性时:

Problem in mapping fragments starting at line 178:Condition member
‘addresses.OwnerCategory’ with a condition other than ‘IsNull=False’
is mapped. Either remove the condition on addresses.OwnerCategory or
remove it from the mapping.

当Address是具体的,并且不包含OwnerCategory属性时:

‘DtcInvoicer.Database.Address’ does not contain a definition for
‘OwnerCategory’ and no extension method ‘OwnerCategory’ accepting a
first argument of type ‘DtcInvoicer.Database.Address’ could be found
(are you missing a using directive or an assembly reference?)

Problem in mapping fragments starting at lines 177,195:EntityTypes
Model.Address,Model.EmployeeAddress are being mapped to the same rows
in table addresses. Mapping conditions can be used to distinguish the
rows that these types are mapped to.

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

当Address是抽象的并且不包含OwnerCategory属性时:

‘DtcInvoicer.Database.Address’ does not contain a definition for
‘OwnerCategory’ and no extension method ‘OwnerCategory’ accepting a
first argument of type ‘DtcInvoicer.Database.Address’ could be found
(are you missing a using directive or an assembly reference?)

任何帮助表示赞赏,提前谢谢.

解决方法

由于您在继承的条件中使用OwnerCategory,因此无法将其映射到属性.看起来你也应该将Address设置为abstract.确保从模型中删除属性修改使用它的任何代码.当编译器找不到特定成员时,您提到的非映射错误似乎是标准错误,因此请务必修复这些错误.

猜你在找的C#相关文章