Microsoftは先頃,Entity Framework 6 Release Candidateをリリースした。DbContextとDbSet用のテストダブル生成を可能にするなどのテスト性改善に加えて,インターセプションとSQLログ出力がサポートされている。
今回のリリースでは,カスタムコードファースト規約とコードベースの構成にも,.NET Framework 4をターゲットとするプロジェクトのサポートなどの大幅な変更が行われている。コアAPIにも変更や更新が加えられ,インテリセンスのドキュメントも追加された。
以下に挙げたラインタイム機能はEntity Framework 6に含まれるもので,コードファーストとEFデザイナのどちらにも適用される。
- 非同期クエリと保存
- 接続回復
- コードベースの構成
- 依存性解決
- 処理の中断とSQLログ出力
- テスト性改善
- .NET 4.0上でのEnum, Spatialサポートとパフォーマンスの向上
- オープン済のDbConnectionを使用したDbContext生成
- トランザクション分離レベル既定値をREAD_COMMITED_SNAPSHOTに変更
- DbContext.Database.UseTransaction
- DbContext.Database.BeginTransaction
- LINQクエリのEnumerable.Containsを拡張
- ビュー生成改良
- プラグイン可能な複数化(Pluralization)
- 単数化(Singularization)サービス
- トランザクションサポート改良
- EqualsおよびGetHashCodeメソッドのカスタム実装
- DbSet.AddRange
- RemoveRange
- DbChangeTracker.HasChanges
- SqlCeFunctions
Rowan Miller氏の説明では,ツーリングに新機能は含まれていないが,EFデザイナで作成されたモデルでは,新しいランタイム機能の大部分が使用できる。
以下のランタイム機能については,コードファーストのみ適応される。
- カスタムコードファースト規約
- コードファーストマッピングでストアドプロシージャの挿入,更新,削除をサポート
- べき等(Idempotent)マイグレーションスクリプト
- 設定マイグレーションの履歴テーブル
- データベース毎に複数のコンテキスト
- DbModelBuilder.HasDefaultSchema
- DbModelBuilder.Configurations.AddFromAssemblyメソッド
- カスタムマイグレーション操作
"FE6の最終リリースはVisual Studio 2013のリリースと同時の予定" である。