LINQ to SQL:データの追加
※この投稿は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)に追加しています。
実行結果はこんな感じになります。
当然データも追加されています。
上記のプログラムからわかることは、dtc.SubmitChanges(); を呼び出したときに実際のデータの追加が行われるということ、そして、データを追加したあとに自動的に追加したデータのidを取り込んで(SELECT文の発行)インスタンスの内容が更新(idが0から11に変更)されているということです。
データベース上のid項目にはIdentity属性を設定しているため、データの追加後でないとこの値は確定しないわけですが、そのあたりまでLINQ to SQLが面倒をみてくれているんですね。