SHOEISHA iD

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

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

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

特集記事

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

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

3. エンティティの作成

 環境が整ったので、ユーザーデータを取り扱うエンティティを作成します。

Userクラスを追加

 [ソリューションエクスプローラー]で、プロジェクトを右クリックし [追加]-[クラス]をクリックします。

図4. クラスを新規追加
図4. クラスを新規追加

 コードファーストでは、クラスをエンティティとして使用します。

図5. クラス名をUser.csと設定
図5. クラス名をUser.csと設定

 ここでは以下のプロパティを持つUserエンティティを作成します。

Userエンティティのカラム設定
プロパティ
(カラム名)
説明
Id 数値 主キー列
Name 文字列 名前を保存する列
Age 数値 年齢を保存する列

プロパティを実装

 エンティティには、Id(もしくはUserId:クラス名+Id)という名前の数値型のプロパティを作成します。Entity Frameworkでテーブルの主キーを扱うために必須のプロパティとなります。

 そして、Nameプロパティ(名前を表す文字列型)とAgeプロパティ(年齢を表す数値型)を定義します。

Userエンティティにプロパティを実装
public class User
{
    public int Id { get; set; }
    public string Name { get; set; }
    public int Age { get; set; }
}

4. DbContextの作成

 続けて、エンティティの管理を行うDbContextの派生クラスを記述します。

エンティティの管理を行うDbContext
Using System.Data.Entity;

public class MyContext: DbContext
{
   public DbSet<User> Users { get; set; }
}  

DbContextクラスとは

 DbContext(System.Data.Entity名前空間)は、データベース接続やエンティティの管理などを担当するクラスです。データの保存やバリデーションに関する機能を持っています。

 DbContextクラスは、コードファーストでデータ操作を行う上で最も重要なクラスといっても良いでしょう。従来のEntity FrameworkにおけるObjectContextクラスの軽量版のような役割となります。

DbContextのクラス図
DbContextのクラス図

DbSetクラスとは

 DbSet(System.Data.Entity名前空間)ではエンティティの集合を扱うことができます。登録/更新/削除といったエンティティで行うべき処理をDbSetクラスで把握することができます。 DbSetクラスは従来のEntity FrameworkにおけるObjectSetクラスの軽量版のような役割となります。

DbSetのクラス図
DbSetのクラス図

 以上で、コードファーストの準備は完了です。ここまでの手順によって、下図のようなプロジェクトが完成しています。

図6. 完成したプロジェクトとコード
図6. 完成したプロジェクトとコード

次のページ
5. エンティティ操作

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

特集記事連載記事一覧

もっと読む

この記事の著者

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

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

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

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

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/6470 2012/03/29 14:00

イベント

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

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

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

メールバックナンバー