近頃、リリースされたEntity Framework 6.1は多くの興味深い改善がなされている。例えば、ツーリングの改良、CommitFailureHandler、IndexAttribute、Public Mapping APIなどだ。
EF 6には起動時間の遅さとエンティティのマテリアライゼーションの問題があった。これらの問題は6.1で解消されるようだ。また、ビューの生成などの性能改善やLINQクエリのnull比較の改善もされている。また、その他の改善は、
- Index Attribute - EF Code-Firstを使用してひとつ以上のカラムにインデックスを設定できる。ユニークインデックスと非ユニークインデックスの両方をサポートする。
- Public Mapping API - マッピングのメタデータにアクセスできる。
- トランザクションのコミット失敗の処理 - コミット時のネットワーク障害は難しい問題になりがちで、アプリケーションがトランザクションが成功したか失敗したかわからなくなってしまう。処理に冪等性があるなら、簡単にリトライできるが、そうでない場合、トランザクションをコミットしていいかどうかチェックする方法が必要だ。今回の新しいリリースによって構成ファイルを変更するだけでこの機能が利用できる。この機能はEF 6で導入されたリトライ機能を利用する。
この機能にはコミットの情報を保持するテーブルが必要。テーブルは手動でパージする必要がある。 - LINQクエリでのToString、String.Concat、HasFlagsのサポート。
- app/web.configを使ったインタセプタの構成によるデバッグの簡易化。いくつかの新しいインタセプタ(DatabaseLogger、IDbTransactionInterceptor)も追加されている。
- ツーリングの強化 - データモデル作成のための単一のエントリポイント(Designer、Code-first、データベースからのインポート)