業務でEntity Frameworkを使いました。
その際、SQLの構文とCRUDのメソッド名が違い、
少し悩んだのでメモ書。
また、IQuerable型でデータを扱わないと、SQLが発行されずに
LINQ to Objectsの扱いになる点にも注意。
膨大なデータのオブジェクトを扱ってしまうことになります。
SELECT
using (var context = new XXXXXContext())
{
context.YYYYYs.Where(x => x.Id == 1);
context.YYYYYs.Where(x => x.Name == "hogehoge").ToArray();
}
INSERT
using (var context = new XXXXXContext())
{
// YYYYY Entity の Statesが
// Unchanged状態→Added状態へ。
context.YYYYYs.Add(
new YYYYY()
{
id = 1,
value= "hoge",
});
context.SaveChanges();
}
UPDATE
using (var context = new XXXXXContext())
{
var yyyyy = context.YYYYYs.Single(x => x.Id == 1);
yyyyy.Name = "Aiueo";
context.SaveChanges();
}
SELECT→DELETE
using (var context = new XXXXXContext())
{
var yyyyy = context.YYYYYs.Single(x => x.Id == 1);
context.YYYYYs.Remove(yyyyy);
context.SaveChanges();
}
Entity Frameworkは以下の状態を持っており、
SaveChanges()メソッドで更新系SQLを発行。
Unchanged: 追跡開始後に変更されていない状態
Added: 追加された状態。
Modified: 編集された状態。
Deleted: 削除された状態。
Detached: 追跡が開始されていない状態