Salvar básicoBasic Save

Saiba como adicionar, modificar e remover dados usando as classes de entidade e de contexto.Learn how to add, modify, and remove data using your context and entity classes.

Dica

Você pode exibir este artigo exemplo no GitHub.You can view this article's sample on GitHub.

Adicionando dadosAdding Data

Use o DbSet.Add método para adicionar novas instâncias de suas classes de entidade.Use the DbSet.Add method to add new instances of your entity classes. Os dados serão inseridos no banco de dados quando você chama SaveChanges.The data will be inserted in the database when you call SaveChanges.

using (var context = new BloggingContext())
{
    var blog = new Blog { Url = "http://sample.com" };
    context.Blogs.Add(blog);
    context.SaveChanges();

    Console.WriteLine(blog.BlogId + ": " +  blog.Url);
}

Atualizando dadosUpdating Data

EF detectará automaticamente as alterações feitas a uma entidade existente que é controlada pelo contexto.EF will automatically detect changes made to an existing entity that is tracked by the context. Isso inclui entidades que você carregar/consulta do banco de dados e entidades que foram adicionadas anteriormente e salvos no banco de dados.This includes entities that you load/query from the database, and entities that were previously added and saved to the database.

Basta modificar os valores atribuídos às propriedades e, em seguida, chamar SaveChanges.Simply modify the values assigned to properties and then call SaveChanges.

using (var context = new BloggingContext())
{
    var blog = context.Blogs.First();
    blog.Url = "http://sample.com/blog";
    context.SaveChanges();
}

Excluindo dadosDeleting Data

Use o DbSet.Remove método para excluir instâncias que classes de entidade.Use the DbSet.Remove method to delete instances of you entity classes.

Se a entidade já existe no banco de dados, ele será excluído durante SaveChanges.If the entity already exists in the database, it will be deleted during SaveChanges. Se a entidade ainda não foram salvas no banco de dados (ou seja, ele é controlado como adicionado) e em seguida, ele será removido do contexto e deixará de ser inserido quando SaveChanges é chamado.If the entity has not yet been saved to the database (i.e. it is tracked as added) then it will be removed from the context and will no longer be inserted when SaveChanges is called.

using (var context = new BloggingContext())
{
    var blog = context.Blogs.First();
    context.Blogs.Remove(blog);
    context.SaveChanges();
}

Várias operações em um único SaveChangesMultiple Operations in a single SaveChanges

Você pode combinar várias operações de atualização/Adicionar/remover em uma única chamada para SaveChanges.You can combine multiple Add/Update/Remove operations into a single call to SaveChanges.

Observação

Para a maioria dos provedores de banco de dados, SaveChanges é transacional.For most database providers, SaveChanges is transactional. Isso significa que todas as operações serão bem-sucedidas ou falham e as operações serão nunca esquerda parcialmente aplicadas.This means all the operations will either succeed or fail and the operations will never be left partially applied.

using (var context = new BloggingContext())
{
    // seeding database
    context.Blogs.Add(new Blog { Url = "http://sample.com/blog" });
    context.Blogs.Add(new Blog { Url = "http://sample.com/another_blog" });
    context.SaveChanges();
}

using (var context = new BloggingContext())
{
    // add
    context.Blogs.Add(new Blog { Url = "http://sample.com/blog_one" });
    context.Blogs.Add(new Blog { Url = "http://sample.com/blog_two" });

    // update
    var firstBlog = context.Blogs.First();
    firstBlog.Url = "";

    // remove
    var lastBlog = context.Blogs.Last();
    context.Blogs.Remove(lastBlog);

    context.SaveChanges();
}