Guardado básico
Obtenga información sobre cómo agregar, modificar y quitar datos mediante las clases de entidad y contexto.
Sugerencia
Puede ver un ejemplo de este artículo en GitHub.
Agregar datos
Use el método DbSet.Add para agregar instancias nuevas de las clases de entidad. Los datos se insertarán en la base de datos cuando llame a SaveChanges.
using (var context = new BloggingContext())
{
var blog = new Blog { Url = "http://example.com" };
context.Blogs.Add(blog);
context.SaveChanges();
}
Sugerencia
Los métodos Add, Attach y Update funcionan en todo el grafo de entidades que se pasaron a ellos, tal como se describe en la sección de datos relacionados. También puede usar la propiedad EntityEntry.State para establecer el estado de una sola unidad. Por ejemplo, context.Entry(blog).State = EntityState.Modified.
Actualización de datos
EF detectará automáticamente los cambios hechos en una entidad existente de la que hace seguimiento el contexto. Esto incluye entidades que se cargan o consultan desde la base de datos y las entidades que se agregaron y guardaron anteriormente en la base de datos.
Solo debe modificar los valores asignados a las propiedades y llamar a SaveChanges.
using (var context = new BloggingContext())
{
var blog = context.Blogs.First();
blog.Url = "http://example.com/blog";
context.SaveChanges();
}
Eliminar datos
Use el método DbSet.Remove para eliminar las instancias de las clases de entidad.
Si la entidad ya existe en la base de datos, se eliminará durante SaveChanges. Si la entidad todavía no se guarda en la base de datos (es decir, si se hace seguimiento cuando se agrega), se quitará del contexto y ya no se insertará cuando se llame a SaveChanges.
using (var context = new BloggingContext())
{
var blog = context.Blogs.First();
context.Blogs.Remove(blog);
context.SaveChanges();
}
Varias operaciones en una única llamada a SaveChanges
Puede combinar varias operaciones Add, Update y Remove en una sola llamada a SaveChanges.
Nota
Para la mayoría de los proveedores de base de datos, SaveChanges es transaccional. Esto significa que todas las operaciones se realizarán correctamente o presentarán un error y que nunca se aplicarán de manera parcial.
using (var context = new BloggingContext())
{
// seeding database
context.Blogs.Add(new Blog { Url = "http://example.com/blog" });
context.Blogs.Add(new Blog { Url = "http://example.com/another_blog" });
context.SaveChanges();
}
using (var context = new BloggingContext())
{
// add
context.Blogs.Add(new Blog { Url = "http://example.com/blog_one" });
context.Blogs.Add(new Blog { Url = "http://example.com/blog_two" });
// update
var firstBlog = context.Blogs.First();
firstBlog.Url = "";
// remove
var lastBlog = context.Blogs.OrderBy(e => e.BlogId).Last();
context.Blogs.Remove(lastBlog);
context.SaveChanges();
}