【C#】Linqメソッド データ追加・挿入 ~ INSERT編 ~

データ追加・挿入(INSERT)

 * InsertOnSubmit()メソッドおよびSubmitChanges()を使用する
 * InsertOnSubmit()を実行しただけではデータベースに反映されず、
   SubmitChanges()を呼び出した時点で反映される(遅延実行?)
 * 複数の行をまとめて挿入したい場合には、InsertAllOnSubmitメソッドを使用する

手順

 データベースのデータを追加・挿入するには、以下の手順を踏む
 1. 送信する列データを含む新しいオブジェクトを作成
 2. InsertOnSubmit()メソッドを使用して、手順1で作成した新しいオブジェクトを追加
 3 .SubmitChanges()を使用して、データベースに変更内容を送信

サンプル

下準備

以下の例については、
http://blogs.yahoo.co.jp/dk521123/16895242.html
を前もって行っています。

private void button1_Click(object sender, EventArgs e)
{
    string result = string.Empty;

    using(DataClasses1DataContext context = new DataClasses1DataContext())
    {
        long id = context.Person.Max(a => a.PersonId) + 1;

        Person p1 = new Person();

        p1.PersonId = id;
        p1.Name = "Paul";
        p1.BirthDate = "1989/02/01";
        p1.AdministrativeSex = "male";

        // データ追加
        context.Person.InsertOnSubmit(p1);
        context.SubmitChanges();

        // データ取得(追加したデータをみたいので)
        var dataList = context.Person
            .Where(a => a.PersonId == id && a.Name == "Paul")
            .Select(a => a);

        foreach(var data in dataList)
        {
            // データをクラスに詰め替える
            result += data.PersonId;
            result += " " + data.Name;
            result += " " + data.BirthDate;
            result += " " + data.AdministrativeSex;
        }
    }

    label1.Text = result;
}