Digamos que tengo 2 clases en el modelo: Usuario (asignado a la tabla USERS) y PrivilegedUser (hereda User, la información adicional se almacena en la tabla PRIVILEGEDUSERS).Entidad Framework: herencia, cambie el tipo de objeto
Ahora, tengo una fila en USUARIOS (y instancia de Usuario) y necesito convertir ese usuario a Usuario Privilegiado (es decir, crear un registro en PRIVILEGEDUSERS con el mismo Id). ¿Hay alguna manera de hacerlo sin Eliminar/Insertar?
El problema es que no tiene la representación PRIVILEGEDUSERS en el modelo, por lo que no puede crear solo esa parte de PrivilegedUser.
Fue solo un ejemplo. PrivilegedUser puede tener algún descuento o administrador personal o lo que sea además de a las propiedades de usuario normales. Al mismo tiempo, hay otras tablas que necesitan referenciar a los usuarios independientemente del tipo de Usuario concreto. Lo he implementado usando el modo de herencia Tabla por tipo. En el nivel de la base de datos, es muy simple convertir usuarios de un tipo a otro (solo necesita insertar o eliminar registros de la tabla de extensiones). Pero en EF solo tiene UserSet que almacena objetos User y PrivilegedUser. Es por eso que pregunto si es posible reemplazar existente Objeto de usuario con PrivilegedUser que mantiene Id existente y sin eliminar registro de la tabla USERS.
Esto es correcto. Una instancia debe/nunca puede cambiar el tipo. Entonces, ¿qué sucede cuando un usuario se convierte en privilegiado o no? –
@Craig, alguna noticia? Me encontré con la misma pregunta. – Shimmy
@Shimmy, "¿noticias?" ¿Qué noticias? Si crees que tu objeto necesita cambiar el tipo, entonces probablemente estés haciendo un mal uso de la herencia. @ La respuesta de DanDan sigue siendo una mejor idea. –