Editar pintor Volver a listado
El siguiente ejemplo se basa en EF - Code First. El modelo tiene herencia de tipo TPH (Table per Hierarchy) y polimorfismo.
El Modelo es sencillo con una clase Pintor de la cual heredan 3 clases más:
El contexto añade una entidad Pintor que enlazará con una tabla en BBDD. Además se sobreescribe OnModelCreating para el mapeo por TPH creando la columna discriminadora Type que tendrá valor Null, PintorDiestro, PintorZurdo o PintorAmbidiestro
Podemos ver un listado de los pintores (con una segunda columna "Lateralidad" donde comprobar el polimorfismo), introducir nuevos (del tipo deseado) y, editar o borrar cualquiera de ellos.
Actualización
Se ha añadido un campo nuevo Rating al modelo.
El alojamiento de la BBDD (smarterasp) no permite el borrado y la generación iniciando en el contexto por "DropDatabaseIfModelChanges" por un tema de permisos (ver). Así que se tomó el inicializador por defecto "CreateDatabseIfNotExists" añadiendo una migración de tipo Code First para actualizar la BBDD según el modelo con la ventana del "Package Manager Console".
En el paradigma Code First de Entity FrameWork (basado en Domain-Driven Design (DDD)) se escriben primero las POCO clases, esto es, el modelo conceptual o dominio, y luego se crea la BBDD a patir de ellas.
Si además existe herencia entre clases tenemos 3 opciones:
La versión Express de Visual Studio no permite añadir Entity Framework Power Tools para crear diagramas de las entidades, dicha extensión aseguraría que el modelo del dominio es el correcto y está perfectamente diseñado.
Parece que EF, a día de hoy (04/06/2014), no soporta interfaces pues no conoce como convertir dichos "contratos" a SQL. Espero que en versiones futuras de EF se pueda realizar Code First con interfaces añadiendo el polimorfismo por esta vía.
Se ha utilizado Visual Studio
Express 2013 para Web y actualmente Visual Comunity 2015.
La programación se ha desarrollado con C#, Razor y acceso a Base de Datos por Entity Framework.
Las tablas mostradas en la aplicación se encuentran en un Microsoft® SQL Server® 2012 y actualmente en SQL de Azure
El alojamiento de las páginas se realizó en https://www.smarterasp.net con el plan .NET ADVANCE
y actualmente se han movido a 2 Aplicaciones Web en Azure: una para
este proyecto Web MVC y otra para un WCF usada en un ejemplo.
Se ha testeado con exito en diferentes navegadores y sistemas operativos, en pantallas de PC, tabletas y moviles.