Web/DB プログラミング徹底解説

ホーム > .NET Framework 開発 > エンティティ・フレームワーク・コードファーストによる開発

エンティティ・フレームワーク・コードファーストによる開発

ここではエンティティ・フレームワーク "コード・ファースト" に関するトピックを取り上げます。

その前に、

「そもそも "コード・ファースト" って何?」

という方も多いと思いますので、それをまず説明してから、 その開発環境とか開発手順について説明していこうと思います。

正直私も最初は「また新しいナントカ・テクノロジーか」と少々ウンザリしました(苦笑)

ですが、実際に覚えて使ってみて、しっかり身のあるものだということがわかり、覚えて損はないと思いました。

関連記事の目次

まずはコードファーストに関わる記事への目次はこちら。

実際にどのようにコードで POCO を定義するかとか、どうやってデータベースを構築・更新するのか、という点を書いてます。

下に、コード・ファーストとは何か、ということを書いておきます。

Entity Framework "コード・ファースト" とは?

"コード・ファースト" 以前はどうだったか?

そもそもコードファースト以前のエンティティー・フレームワーク (EF) 、すなわち、 一番最初、EF が登場したばかりの .NET Framework 3.5 & Visual Studio 2008 では、 データベースのスキーマを読み込み、それを XML を使ってエンティティーを起こす作業をしていました。

これが「データベース・ファースト」(Database First) ということです。まずデータベースありきで、それを取込んで、データベースのスキーマとコード上のオブジェクトのマッピングを行う、ということです。

次のバージョンの EF4 では、ビジュアル・デザイナーを使ったデータのモデリングが最初に来て、そこからエンティティーを取込むということをしました。

これが「モデル・ファースト」(Model First) です。

「データベース・ファースト」「モデル・ファースト」もどちらも、要はデータベース上、あるいはデザイナーツール上でのスキーマの設計があって、そこからコードへのマッピングを行うという流れです。

データベースががっちり固まっていてスタートできる場合ならそれでいいのですが、途中で要件がチョイチョイかわる現場の開発では、 都合が悪い場合も多々ありました。

というか、途中で変わるのは普通のことですよね。結局、途中でマッピングをやり直すのに手間だと使えない・使いにくい、ということになってしまいます。 従来のコード生成系の OR マッパーツールではそういうのが多かったです。

そして "コード・ファースト"

それに次いで登場した「コード・ファースト」(Code First) では、名前の通り、コードが先に来ます。

つまり、C# なりでエンティティーとなるクラス定義を行い、それを元に、なんと、データベースを構築まで行い、利用時にはエンティティーフレームワークが使えるというわけです。

ちなみに、このときのオブジェクトは POCO と呼ばれます。Plain Old CLR Object の頭文字をとって POCO。 (さらにちなみに、Java での同じようなものは POJO。POJO のほうがずっと昔からあります)

コードから DB を起こす流れになるので、DB とコードも整合性がとれるのでありがたいわけです。

ホーム > .NET Framework 開発 > エンティティ・フレームワーク・コードファーストによる開発