Del curso: .NET 5: Entity Framework Core Esencial

Guardado simple

En este vídeo vamos a ver lo fácil que es realizar operaciones de guardado en la base de datos utilizando Entity Framework Core. Aquí estamos en el proyecto de ejemplo LibraryManagerWeb, dentro de HomeController, en el método Index. Aquí tenemos nuestro contexto inyectado, así que podemos utilizarlo. Fíjate. Tenemos aquí un autor nuevo, var Author = new Author. Le introducimos todos los datos, pero fíjate que aquí no estamos utilizando el campo AuthorId, porque es un campo autogenerado y en este caso sí que la base de datos va a ser la que lo va a generar. En el HasData sí que teníamos que ponerlo a mano, puesto que si no, la migración no sabía si un dato había cambiado, porque las migraciones trabajan en modo desconectado, pero aquí no hace falta, ya que es el motor el que lo genera. Una vez que instanciamos la variable nueva, lo que hacemos es añadirla al contexto; justo en el momento en que la añadimos al contexto, el contexto ya hace seguimiento de todas las propiedades de esa entidad. A continuación, hacemos un SaveChangesAsync y esa entidad se va a persistir en base de datos, tan sencillo como eso. Ahora estoy obteniendo un libro, el libro «Los ojos del dragón». Estoy modificando la sinopsis y, como en el momento en que obtengamos una entidad con una consulta está en seguimiento, al hacer el SaveChangesAsync, Entity Framework Core va a comparar la sinopsis, va a ver qué ha cambiado y también la va a actualizar en la base de datos. Por último, obtengo el libro de «La torre oscura». Contains «oscura» es la consulta que he hecho y aquí hago un context.Books.Remove de este libro. Cuando haga SaveChanges, lo que va a provocar es que ese libro se elimine de la base de datos. Vamos a ver si esto funciona correctamente. Pongo aquí un punto de parada y F5 para ejecutar. Ahí estamos, en nuestro HomeController, ahora creamos el libro, lo añadimos al contexto, por lo cual ya está en seguimiento, y cuando hacemos un SaveAsync, automáticamente este libro se guarda en la base de datos. Ahora obtengo el libro de «Los ojos del dragón», le cambio la sinopsis y, como la entidad está en seguimiento, al hacer el SaveChangesAsync, se va a cambiar ese campo. Aquí podemos ver esa consulta. ¿Ves? UPDATE [Books] SET [Sinopsis] = p0, WHERE [BookId] = p1, y utiliza los DB parameters para añadir esos parámetros. Ahora obtenemos el siguiente libro, que es el de «La torre oscura», y lo eliminamos. Hacemos un SaveChanges, y aquí puedes ver también la consulta, cómo ha borrado el libro de la base de datos. Como ves, es muy sencillo realizar operaciones de guardado con Entity Framework Core.

Contenido