EF Gets Public Mapping API, Ability To Handle Commit Failures
Entity Framework 6.1 was recently released with several interesting improvements such as better tooling, CommitFailureHandler, IndexAttribute, a Public Mapping API and more.
EF 6 was affected by slow startup time and entity materialization issues. These are reported fixed in 6.1 along with other performance improvements such as faster view generation in more scenarios and optimizations for null equality comparison in LINQ queries. Apart from this, several improvements have been made -
- An Index Attribute - Allows creation of indexes on one or more columns when using EF Code-First. Supports both unique and non-unique indexes.
- A Public Mapping API - which enables developers to get access to the mapping metadata.
- Handling of Transaction Commit Failures - network failures during commits can be tricky and stop the application from knowing whether the transaction was successfully committed on the server; if the operation is idempotent, you can retry it easily, but if it is not, then there needs to be a way to check with the server whether the transaction did commit. This new feature enables this with just a config change. And it works with the retries feature introduced in EF 6.
Note that this feature uses a table to store commit information, which might need to be purged manually.
- Support For ToString, String.Concat and enum HasFlags in LINQ Queries
- Easier debugging with the ability to configure intercepters via app/web config and a couple of new interceptors (DatabaseLogger and IDbTransactionInterceptor)
- Tooling consolidation - a single entry point for creating any data model (Designer, Code-first, import from database)