Estoy tratando de implementar tabla por herencia de jerarquía con algunas de las tablas de mi base de datos, por ejemplo Address
. Quiero derivar 3 clases de Address
, estas son EmployeeAddress
, CustomerAddress
, SupplierAddress
.Entity Framework Table por herencia Jerarquía
+-------------------+------------------------+
| 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) |
| .. |
| .. |
| .. |
| .. |
| .. |
+------------------------+
El problema es que dan errores ...
Cuando Address
es concreto, y contiene la propiedad OwnerCategory
:
Error 3032: Problema en fragmentos de mapeo a partir de la línea 178: Condición miembro 'direcciones.Categoría del propietario' con una condición diferente que 'IsNull = False' se asigna. Elimine la condición en address.OwnerCategory o elimínela de la asignación.
Cuando Address
es abstracto y contiene el OwnerCategory
propiedad:
Problema en fragmentos de mapeo a partir de la línea 178: Condición miembro 'addresses.OwnerCategory' con una condición distinta de 'IsNull = False ' está asignado. Elimine la condición en addresses.OwnerCategory o elimínela de la asignación.
Cuando Address
es concreto, y no contienen el OwnerCategory
propiedad:
'DtcInvoicer.Database.Address' no contiene una definición para 'OwnerCategory' y ningún método de extensión 'OwnerCategory' aceptando un primer argumento de tipo 'DtcInvoicer.Database.Address' se puede encontrar (¿falta una directiva using o una referencia de ensamblado?)
y
Problema en fragmentos de mapeo a partir de las líneas 177, 195: EntityTypes Model.Address, Model.EmployeeAddress están siendo asignada a las mismas filas en direcciones de la tabla. Las condiciones de asignación se pueden usar para distinguir las filas a las que se asignan estos tipos.
(que ya tienen la condición de establecimiento (cuando OwnerCategory = 0)
Cuando Address
es abstracta y no contienen el OwnerCategory
propiedad:
'DtcInvoicer.Database.La dirección 'no contiene una definición para ' OwnerCategory 'y no hay ningún método de extensión' OwnerCategory 'que acepte un primer argumento de tipo' DtcInvoicer.Database.Address ' (¿falta una directiva using o una referencia de ensamblado?)
Se agradece cualquier ayuda, gracias de antemano.
Oye, intenté eliminar la propiedad 'OwnerCateogry', y establecí' Address' en abstract, como mencioné anteriormente. Obtengo el error que mencioné al final. –
Correcto, parece que algún otro código estaba usando 'OwnerCategory', tendrá que modificar ese código para no usar' OwnerCategory'. – scmccart
Oye, parece que tienes razón. Parece estar funcionando ahora. Creo que lo estaba usando en otro lugar. Gracias de nuevo. –