miércoles, agosto 29, 2012

Herencia y Entity Framework (ADO.NET)


A continuación un ejemplo de herencia con Entity Framework utilizando el patrón Model first. Si no se está familiarizado con alguno de los conceptos que aquí aparecen, recomiendo leer antes el post dedicado a la creación de un mantenimiento con Entity Framework.

1. Creamos el modelo utilizando ADO.NET Entity Data Model
 


2. Generamos la base de datos a partir del modelo:

 

3. Creamos los controladores (ActivitiesController, EmailsControllers y TasksControllers) y las vistas asociadas (haciendo Agregar Controller sobre la carpeta Controllers). A modo de ejemplo:

CUIDADO: En el EmailsController hay que sustituir db.Activities por db.Activities.OfType<Email>() para que funcione correctamente.

        // GET: /Emails/
 
        public ViewResult Index()
        {
            return View(db.Activities.OfType<Email>().ToList());
        }
 
        //
        // GET: /Emails/Details/5
 
        public ViewResult Details(int id)
        {
            Email email = db.Activities.OfType<Email>().Single(e => e.Id == id);
            return View(email);
        }

Ya podemos ejecutar la aplicación. Para ver la lista de las actividades podemos añadir /Actividades a la URL (por ejemplo, en mi caso, http://localhost:50411/Actividades), y si queremos ver los emails podemos añadir /Emails a la URL.
Obsérvese que si creamos un nuevo email, éste aparecerá como actividad en la lista de actividades, mientras que si creamos una nueva actividad, ésta no aparecerá en la lista de emails.

No hay comentarios:

Publicar un comentario