【C#】Linqメソッド データ修正 ~ UPDATE編 ~

データ修正(UPDATE)

 * エンティティのプロパティを変更すれば更新対象とし、その後、SubmitChanges()すれば更新される

サンプル

前準備

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

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

    long id;
     if(!long.TryParse(textBox1.Text, out id))
     {
         MessageBox.Show("整数値を入れて下さい");
         return;
     }

    using (DataClasses1DataContext context = new DataClasses1DataContext())
    {
        Person p = context.Person
            .Where(a => a.PersonId == id)
                .SingleOrDefault();

        label1.Text = string.Format("その人の名前は、{0}", p.Name);
    }

    DialogResult ans = MessageBox.Show("この人を修正しますか?",
        "質問",
        MessageBoxButtons.YesNo,
        MessageBoxIcon.Exclamation,
        MessageBoxDefaultButton.Button2);

    if (DialogResult.Yes.Equals(ans))
    {
        using (DataClasses1DataContext context = new DataClasses1DataContext())
        {
            var dataList = context.Person
                .Where(a => a.PersonId == id)
                .Select(a => a);

            foreach (var data in dataList)
            {
                data.Name = "Bill";
                data.BirthDate = "1223/09/12";
            }

            context.SubmitChanges();
        }
    }
}