最近,微软发布了 Entity Framework 6 候选发布版,它支持拦截、 SQL 日志,另外还针对可测试性进行了多项改进,使开发人员可以为 DbContext 和 DbSet 创建 Test doubles 。
该版本还在自定义“代码优先(code first)”约定和基于代码的配置方面做了重大更改,包括支持以.NET Framework 4 为目标框架的项目。产品团队还对核心 API 做了一些改变和更新,并增加了智能感知文档。
Entity Framework 6 包含了以下运行时特性,它们同时适用于代码优先和 EF 设计器:
- 异步查询和保存
- “连接恢复(Connection Resiliency)”
- 基于代码的配置
- “依赖解决方案(Dependency Resolution)”
- 拦截 /SQL 日志
- 经过改进的可测试性
- 在.NET 4.0 中,有更好的性能,并且支持枚举和空间数据类型
- 使用已经打开的 DbConnection 创建 DbContext
- 默认事务隔离级别改为 READ_COMMITTED_SNAPSHOT
- DbContext.Database.UseTransaction
- DbContext.Database.BeginTransaction
- 增强了 LINQ 查询中的 Enumerable.Contains 方法
- 经过改进的视图生成
- “可插式复数化(Pluggable Pluralization)”
- “单数化服务(Singularization Service)”
- 经过改进的事务支持
- Equals 或 GetHashCode 方法的自定义实现
- DbSet.AddRange
- RemoveRange
- DbChangeTracker.HasChanges
- SqlCeFunctions
据 Rowan Miller 说,这个工具没有包含新特性,但大部分运行时新特性可以与在 EF 设计器中创建的模型一起使用。
下面的运行时特性只适用于代码优先:
- 自定义代码优先约定
- 支持将代码优先映射到插入、更新、删除的存储过程
- 幂等迁移脚本
- 可配置的迁移历史表
- 每个数据库有多个上下文
- DbModelBuilder.HasDefaultSchema
- DbModelBuilder.Configurations.AddFromAssembly 方法
- 自定义迁移操作
Rowan 说,“EF6 最终版将随 Visual Studio 2013 一起发布。”
查看英文原文: Entity Framework 6 RC Adds SQL Logging, Testability Improvements and New IntelliSense Documenation
评论