以下の内容はhttps://blog.okazuki.jp/entry/2016/03/17/092330より取得しました。


UWPでEntity Framework 管理外のオブジェクトを変更監視に追加する

一旦DBからとってきたデータを暫く手元に置いておいて、後で更新したいということってありますよね。Entity Frameworkのデフォルトの挙動だと、DbSetから取得したデータに対する変更は監視して、いい感じにSaveChangesのときにDBに反映してくれます。

ただ、別のDbContextから取得したオブジェクトや手元でnewしたオブジェクトは、そのままではいい感じに変更監視してくれません。 そんな時に使えるのがDbSetのAttachメソッドです。Attachにオブジェクトを渡すと変更監視してくれます。 また、Attachの戻り値のEntityEntryのStateをEntityState.Modifiedにすることで、変更があったとマークすることが出来ます。

コードで書くと以下のような感じです。

var p = default(Person);
using (var ctx = new SampleContext())
{
    p = new Person { Name = "Tanaka" };
    ctx.People.Add(p);
    ctx.SaveChanges();
}

p.Name = "Kimura";

using (var ctx = new SampleContext())
{
    var tracker = ctx.People.Attach(p);
    tracker.State = Microsoft.Data.Entity.EntityState.Modified;
    ctx.SaveChanges();
}

using (var ctx = new SampleContext())
{
    p = ctx.People.First();
    Debug.WriteLine($"{p.Id} {p.Name}");
    ctx.SaveChanges();
}



以上の内容はhttps://blog.okazuki.jp/entry/2016/03/17/092330より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14