アーカイブ

Archive for 2007年9月20日

LINQ to SQL:データの追加

2007年9月20日 コメントを残す

※この投稿はMicrosoft Visual Studio 2008 Beta2で動作を確認しています。

データベースにデータを追加してみます。
次のようなプログラムを記述します。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace LINQ5
{
    class Program
    {
        static void Main(string[] args)
        {
            LINQTESTDataContext dtc = new LINQTESTDataContext();
            dtc.Log = Console.Out;

            People newPerson = new People
            {
                Name = "オノ シュウジ",
                Gender = 1,
                Age = 41
            };

            dtc.People.Add(newPerson);

            Console.WriteLine("id={0}, 名前={1}, 性別={2}, 年齢={3}",
                newPerson.id, newPerson.Name, newPerson.Gender, newPerson.Age);

            dtc.SubmitChanges();

            Console.WriteLine("id={0}, 名前={1}, 性別={2}, 年齢={3}",
                newPerson.id, newPerson.Name, newPerson.Gender, newPerson.Age);
            Console.Read();
        }
    }
}

追加する人のインスタンス(newPerson)を作成し、テーブル(dtc.People)に追加しています。
実行結果はこんな感じになります。

 image

当然データも追加されています。

 image_3

上記のプログラムからわかることは、dtc.SubmitChanges(); を呼び出したときに実際のデータの追加が行われるということ、そして、データを追加したあとに自動的に追加したデータのidを取り込んで(SELECT文の発行)インスタンスの内容が更新(idが0から11に変更)されているということです。

データベース上のid項目にはIdentity属性を設定しているため、データの追加後でないとこの値は確定しないわけですが、そのあたりまでLINQ to SQLが面倒をみてくれているんですね。

カテゴリー:.NET, LINQを楽しむ