今月の始め頃に ADO.NETチームは、 Entity Framework Code-Firstライブラリの CTP5をリリースした。ライブラリは、データを扱っている開発者に、コード中心のワークフローを提供することを意図している。このCTPは、2011年のQ1に予定されている最終リリース前の最後のリリースである。
Entity Framework Code-First CTP5 によって、開発者は以下のことができるようになる。
- デザイナーを開かずに開発できる
- ベースクラスが不要なクラスを書くことによってモデル オブジェクトを定義できる
- 明示的に何も設定せずにデータベースの永続化ができる
CTP5の既知の問題
- Fluent APIにおけるテーブルとカラムのマッピングは、品質改善が必要
- プラグイン可能な規約は、CTP5では早期プレビュー版、もっとテストが必要
- バリデーション フィーチャは、 Code First使用時のみサポートされている
CTP4以降の新たな追加項目
DbContext
- DbContext/DbSet を使うためのT4テンプレート
- 保存時のオブジェクト バリデーション
- 変更追跡 API
- DbSet.LocalがDbSetのローカル内容を表す ObservableCollectionをアクセス可能にする
- iQueryable<T>への AsNoTracking拡張メソッドにより No-Tracking クエリのサポート
- DbContex 設定
- Raw SQL クエリ/コマンド
- 同時実行における競合解決の改善
コード ファースト
- 完全なデータ アノテーションのサポート
- Fluent API の改善
- 単純化されたテーブルとカラムのマッピング
- クラスとプロパティを無視する機能
- プラグイン可能な規約は、早期リリース版で、開発が終了していない
CTP4からの変更
- 新しいアセンブリ名 - EntityFramework.dll
- 既存データベースへのコードファースト サポートの改善
- DbContext.ObjectContext が移動して、コンテキストを取得するには、((IObjectContextAdapter)myContext).ObjectContextを介する
- EdmMetadata Tableの排除
- クラスの変更
- System.Data.Entity.Database.DbDatabase
- System.Data.Entity.Database.DropCreateDatabaselfModelChanges
- System.Data.Entity.Database.DropCreateDatabaseAlways
- System.Data.Entity.Database.CreateDatabaselfNotExists
- System.Data.Entity.Database.SqlConnectionFactory
- System.Data.Entity.Database.SqlCeConnectionFactory
開発者は、 Visual Studioの NuGetを使った、容易なライブラリのインストールとSQL Azure内のデータに対しても使えることが気に入っている。このリリース以来、Morteza Manavi 氏がCTP5を使って、継承性マッピングと Entity Associationに関する 素晴らしいシリーズを書いている。