SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

特集記事

Entity Frameworkコードファーストで開発してみよう

ADO.NET Entity Framework4.3でコードファースト開発をする方法を紹介

  • X ポスト
  • このエントリーをはてなブックマークに追加

5. エンティティ操作

 それでは、Entity Frameworkを使ってデータを操作してみましょう。

データ追加

 データを追加するコード例は以下のようになります。

Userエンティティの追加
// 2人のユーザーを追加
var userA = new User { Name = "上川", Age = 20 };
var userB = new User { Name = "山元", Age = 30 };

using (var context = new MyContext())
{
    context.Users.Add(userA);
    context.Users.Add(userB);
    // 保存
    context.SaveChanges();
    Console.Out.WriteLine("追加しました");
}

 まずエンティティであるUserクラスをインスタンス化し任意の値を設定します。次にデータアクセスを行うためにMyContext(DbContext派生クラス)を宣言します。MyContextは、確実に破棄されるようにusing句を使って宣言します。

 DbSetクラスのAddメソッドでuserAとuserBを登録対象として設定します。その後SaveChangesメソッドを呼び出すと、データが登録されます。

データ取得

 次にデータを取得するコード例は以下のようになります。

Userエンティティの抽出
// 登録したデータを参照
using (var context = new MyContext())
{
    // 25歳以上のユーザーを抽出
    var list = from u in context.Users
                where u.Age > 25
                select u;

    foreach (var l in list)
    {
        Console.Out.WriteLine(l.Name);
    }
}

 データを取得するときも、MyContextクラスを使用します。DbSetUsersプロパティ)に対して、Linq To Entitiesを使用すると簡単にデータを取得することができます。

プログラムを実行

 それではプログラムを実行してみます。通常の[デバッグ実行]では完了後にコンソールが閉じてしまうので、[デバッグなしで実行]を選ぶと良いでしょう。

プログラムの実行結果
プログラムの実行結果

 テーブルの準備をしていなくてもエラーが出ることなく、登録した2ユーザーのうち25歳以上のユーザーを正しく取得できていることが分かります。

データ更新・削除

 参考まで、データの更新、削除するコードも紹介しておきましょう。

Userエンティティの削除と更新
using (var context = new MyContext())
{
    // ユーザーの年齢を更新
    var userU = context.Users.FirstOrDefault(x => x.Name == "上川");
    userU.Age = 50;

    // ユーザーを削除
    var userD = context.Users.FirstOrDefault(x => x.Name == "山元");
    context.Users.Remove(userD);

    // 保存
    context.SaveChanges();
    Console.Out.WriteLine("更新削除しました");
}

 データの更新については、エンティティを取り出してから、エンティティを変更します。ここでは年齢を50に設定しています。設定後にSaveChangesメソッドを呼び出して保存します。

 削除する場合は、削除対象のオブジェクトを引数にしてRemoveメソッドを呼び出します。こちらもSaveChangesメソッドを呼び出して保存します。

次のページ
6. SQL Server Management Studioで確認

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
特集記事連載記事一覧

もっと読む

この記事の著者

百賀 吟平(モモガ ギンペイ)

主に.NETを使ったアプリケーション開発に従事するプログラマー。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/6470 2012/03/29 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング