エンティティフレームワーク・コードファーストで作成されたデータベースを確認する
この記事では「エンティティ・フレームワーク・コードファーストの基本的な開発手順」 で作成したプログラムを実行しました。
このときにフレームワークが自動的に構築するデータベースをみてみましょう。
エンティティ・フレームワーク・コードファーストでは、プロパティの命名規則によって自動的に設定される属性がありますので、 そうした点もみてみましょう。
コード・ファーストで作成されるデータベース
「エンティティ・フレームワーク・コードファーストの基本的な開発手順」のプログラムを実行すると、 次のようなデータベースが自動的に作成されます。
データベースは (LocalDB)\v11.0 上の cftest1.CfTest1DbContext です。 すなわち [名前空間名].[DbContext クラス名] です。(LocalDB については "LocalDB とは? をみてください)
さらにテーブルの中身をみていきますと、次のように POCO のプロパティがそのままテーブルのカラムに変換されていることがわかります。
Id という名前のプロパティはプライマリキーとして認識されます。
また、よくみると、ちゃんと外部キーも設定されていることが分かります。 ここはどのようになっているかみてみましょう。
Employee から Company を参照するための CompanyId と Company プロパティが設定されています。 このように "クラス名" + "Id" という名前のプロパティと参照先のクラス名のプロパティを作ると自動的に外部キーに設定されます。
このときの参照先のクラス名のプロパティ (この例では Employee クラスの Company) をナビゲーションプロパティといいます。
ID とナビゲーションプロパティがあると、自動的に外部キーも設定してくれます。
以上、今回の例ではいきなり POCO の定義を行い、DbContext をベースとするコンテキストクラスを使ってデータ操作を行ったら、 裏側で LocalDB 上にデータベースが作成されていた、しかも、Id やナビゲーションプロパティからプライマリキーや外部キーなども設定されるということを確認しました。
尚、こうした参照データを読み込む方法については、 参照先のエンティティを読込む方法 をみてください。