Zapisz podstawowyBasic Save

Informacje o sposobie dodawania, modyfikowania i usuwania danych przy użyciu klas kontekstu i jednostek.Learn how to add, modify, and remove data using your context and entity classes.

Porada

Można wyświetlić w tym artykule próbki w witrynie GitHub.You can view this article's sample on GitHub.

Dodawanie danychAdding Data

Użyj DbSet.Add metody w celu dodania nowych wystąpień klas jednostek.Use the DbSet.Add method to add new instances of your entity classes. Dane zostanie wstawiony w bazie danych podczas wywoływania 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);
}

Aktualizowanie danychUpdating Data

EF automatycznie wykrywa zmiany wprowadzone do istniejącego obiektu, które są śledzone przez kontekst.EF will automatically detect changes made to an existing entity that is tracked by the context. W tym jednostki, które możesz obciążenia/zapytania z bazy danych i jednostek, które zostały wcześniej dodane i zapisane w bazie danych.This includes entities that you load/query from the database, and entities that were previously added and saved to the database.

Po prostu zmodyfikuj wartości dla właściwości, a następnie wywołać 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();
}

Usuwanie danychDeleting Data

Użyj DbSet.Remove metodę wystąpienia klas jednostek można usunąć.Use the DbSet.Remove method to delete instances of you entity classes.

Jeśli ta jednostka już istnieje w bazie danych, zostaną usunięte podczas SaveChanges.If the entity already exists in the database, it will be deleted during SaveChanges. Jeśli jednostka nie został jeszcze zapisany w bazie danych (np. jego śledzenia dodany), a następnie zostaną usunięte z kontekstu i nie będzie już wstawiony, kiedy SaveChanges jest wywoływana.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();
}

Wiele operacji w jednej metody SaveChangesMultiple Operations in a single SaveChanges

Można połączyć wiele operacji dodawania/aktualizacji/usuwania w jednym wywołaniu SaveChanges.You can combine multiple Add/Update/Remove operations into a single call to SaveChanges.

Uwaga

W przypadku dostawców większości bazy danych SaveChanges jest transakcyjna.For most database providers, SaveChanges is transactional. Oznacza to, wszystkie operacje będą powodzenie lub Niepowodzenie i operacje będą nigdy nie lewej częściowo stosowane.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();
}