Enregistrement de baseBasic Save

Découvrez comment ajouter, modifier et supprimer des données à l’aide de vos classes de contexte et d’entité.Learn how to add, modify, and remove data using your context and entity classes.

Conseil

Vous pouvez afficher cet exemple sur GitHub.You can view this article's sample on GitHub.

Ajout de donnéesAdding Data

Utilisez la méthode DbSet.Add pour ajouter de nouvelles instances de vos classes d’entité.Use the DbSet.Add method to add new instances of your entity classes. Les données seront insérées dans la base de données lorsque vous appelez 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);
}

Conseil

Les méthodes Add, Attach et Update fonctionnent toutes sur le graphique complet des entités passées, comme décrit dans la section Données associées.The Add, Attach, and Update methods all work on the full graph of entities passed to them, as described in the Related Data section. Vous pouvez aussi utiliser la propriété EntityEntry.State pour définir l’état d’une seule entité.Alternately, the EntityEntry.State property can be used to set the state of just a single entity. Par exemple, context.Entry(blog).State = EntityState.Modified.For example, context.Entry(blog).State = EntityState.Modified.

Mise à jour des donnéesUpdating Data

EF détecte automatiquement les modifications apportées à une entité existante qui est suivie par le contexte.EF will automatically detect changes made to an existing entity that is tracked by the context. Cela inclut les entités que vous chargez/demandez à partir de la base de données et des entités qui ont été précédemment ajoutées et enregistrées dans la base de données.This includes entities that you load/query from the database, and entities that were previously added and saved to the database.

Modifiez simplement les valeurs affectées aux propriétés, puis appelez 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();
}

Suppression de donnéesDeleting Data

Utilisez la méthode DbSet.Remove pour supprimer les instances de vos classes d’entité.Use the DbSet.Remove method to delete instances of you entity classes.

Si l’entité existe déjà dans la base de données, elle sera supprimée pendant SaveChanges.If the entity already exists in the database, it will be deleted during SaveChanges. Si l’entité n’a pas encore été enregistrée dans la base de données (autrement dit, si elle est suivie comme ajoutée), elle sera supprimée du contexte et ne pourra plus être insérée lorsque SaveChanges est appelé.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();
}

Plusieurs opérations dans un seul SaveChangesMultiple Operations in a single SaveChanges

Vous pouvez combiner plusieurs opérations d’ajout/mise à jour/suppression en un seul appel à SaveChanges.You can combine multiple Add/Update/Remove operations into a single call to SaveChanges.

Note

Pour la plupart des fournisseurs de base de données, SaveChanges est transactionnel.For most database providers, SaveChanges is transactional. Cela signifie que toutes les opérations réussissent ou échouent complètement et que les opérations ne sont jamais partiellement appliquées.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();
}