基本の保存Basic Save

追加、変更、および、コンテキストおよびエンティティ クラスを使用してデータを削除する方法を説明します。Learn how to add, modify, and remove data using your context and entity classes.

ヒント

この記事を表示するサンプルGitHub でします。You can view this article's sample on GitHub.

データの追加Adding Data

使用して、 DbSet.Addエンティティ クラスの新しいインスタンスを追加するメソッド。Use the DbSet.Add method to add new instances of your entity classes. データを呼び出すと、データベース内に挿入される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);
}

データの更新Updating Data

EF は、コンテキストによって追跡されている既存のエンティティに行われた変更を自動的に検出されます。EF will automatically detect changes made to an existing entity that is tracked by the context. これには、エンティティをデータベースから読み込み/クエリして以前に追加され、データベースに保存されているエンティティが含まれます。This includes entities that you load/query from the database, and entities that were previously added and saved to the database.

プロパティに割り当てられた値を単に変更し、呼び出す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();
}

データの削除Deleting Data

使用して、 DbSet.Removeするエンティティ クラスのインスタンスを削除するメソッド。Use the DbSet.Remove method to delete instances of you entity classes.

エンティティがデータベースに既に存在する場合、中には削除されますSaveChangesです。If the entity already exists in the database, it will be deleted during SaveChanges. エンティティが (つまり追跡追加されると)、データベースに保存されていない場合それがコンテキストから削除されますあり、使用できなくなります挿入時にSaveChangesと呼びます。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();
}

1 つの SaveChanges で複数の操作Multiple Operations in a single SaveChanges

1 回の呼び出しに複数の追加/更新/削除操作を組み合わせることができますSaveChangesです。You can combine multiple Add/Update/Remove operations into a single call to SaveChanges.

注意

ほとんどのデータベース プロバイダーのSaveChangesがトランザクションです。For most database providers, SaveChanges is transactional. つまり、すべての操作の成功または失敗が操作しない左部分的に適用されます。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();
}