I am trying to implement table per hierarchy inheritance with some of my database tables, e.g Address. I want to derive 3 classes from Address, these are 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) |
| .. |
| .. |
| .. |
| .. |
| .. |
+------------------------+
The problem is I keep getting errors...
When Address is concrete, and contains the OwnerCategory property:
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.
When Address is abstract and contains the OwnerCategory property:
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.
When Address is concrete, and does not contain the OwnerCategory property:
'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?)
and
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.
(I already have the condition set (when OwnerCategory = 0)
When Address is abstract and does not contain the OwnerCategory property:
'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?)
Any help is appreciated, thanks in advance.