Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

UWPでEntity Framework 追加・更新・削除

$
0
0

コードファーストでのテーブル定義もなんとなくわかったので、追加・更新・削除でもしてみたいと思います。

基本的な流れは、変更操作をした後SaveChangesメソッドを呼び出すという流れになります。SaveChangesを呼び出すとEntity Frameworkが、それまでの変更を元にDBに対して更新作業をしてくれます。こんなDbContextを定義してる前庭で話を進めていきます。

using Microsoft.Data.Entity;

namespace App51
{
    publicclass SampleContext : DbContext
    {
        public DbSet<Person> People { get; set; }

        protectedoverridevoid OnConfiguring(DbContextOptionsBuilder optionsBuilder)
        {
            optionsBuilder.UseSqlite("filename=sample.db");
        }

        protectedoverridevoid OnModelCreating(ModelBuilder modelBuilder)
        {
            modelBuilder.Entity<Person>()
                .ToTable("People")
                .Property(x => x.Name)
                .IsRequired();
        }
    }

    publicclass Person
    {
        publicint Id { get; set; }
        publicstring Name { get; set; }
    }
}

追加

DbSetにAddしてSaveChangesです。

using (var ctx = new SampleContext())
{
    var p = new Person { Name = "Tanaka" };
    var p2 = new Person { Name = "Kimura" };

    ctx.People.Add(p);
    ctx.People.Add(p2);

    ctx.SaveChanges();

    Debug.WriteLine($"{p.Id} {p.Name}");
    Debug.WriteLine($"{p2.Id} {p2.Name}");
}

SaveChanges後には、Idに値がふられていること(DBで自動割り当てにしてるから)が確認できます。

更新

更新は、DbContextから取得したデータに対して変更をしてSaveChangesをします。

using (var ctx = new SampleContext())
{
    var p = ctx.People.First();
    p.Name = "Ohta";

    ctx.SaveChanges();
}

削除

データの削除は、DbSetから取得したエンテティに対してDbSetのRemove(たくさんある場合はRemoveRangeを使うと楽)メソッドに渡してSaveChangesすることで削除されます。

using (var ctx = new SampleContext())
{
    var p = ctx.People.First();
    ctx.People.Remove(p);
    ctx.SaveChanges();
}

Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>