最終更新:2012-08-07 (火) 12:00:57 (4252d)
コードファースト
Top / コードファースト
- Entity Framework 4.1から登場した新機能
- エンティティ(モデルのコード)を記述しておけば、テーブルが自動生成されるのでデザイナを開いたり、XMLマッピング・ファイルを定義したりする必要なく開発できる
POCO
ナビゲーションプロパティ
- ナビゲーションプロパティを定義すると、それにあわせてリレーションが設定される
- リレーションの相手となるクラス名+IDという名前のプロパティは外部キーとなる
- ナビゲーションプロパティに virtual を指定することでレイジーローディングが有効になる
- 外部キー名は参照先のテーブル名_Id(インデックスがIDの場合はID)になる
ルール
- クラス(単数形)は、同名のテーブル(複数形)にマッピングされる。
- プロパティは、同名のテーブル列にマッピングされる 。
- 主キーは、Id、または<クラス名>Idという名前がデフォルトになる。(例:AirlineId?)
- 上記以外の主キーを定義するには、Key属性(System.ComponentModel?.DataAnnotations?名前空間)を付けてプロパティを定義する。
- nullを許容する値型の列は、null許容型で指定する。(例:int? )
- ナビゲーションプロパティ(他のエンティティとの関連)は、同名のエンティティにマッピングされる。(例:Airports)
DbContext
- データベース接続やエンティティの管理などを担当するクラス。
- データの保存やバリデーションに関する機能を持つ。
DbSet
- エンティティの集合を扱う
データベース
- コードファースト開発では、自動的に「.\SQLEXPRESS」インスタンス(ローカルPCのSQLEXPRESSインスタンス)にデータベースが作成されます。
- データベース名はDbContext派生クラスと同じ名前になります。