下定决心以后用EF6.x版本了。想看看有什么更新特性,结果去人家github老巢一看,EF7 for vnext,顿时蛋疼了起来。想想国内这种技术氛围,有多少还在用ASP的,有多少还在用ADO.NET的(我指传统那种直接sql弄得不亦乐乎的),有多少个aspx结尾的网站还在开发的路上,就不想再多说什么了。
EF6是和VS2013一起发布的,所以要体验EF6的完整特性请做个自带VS2013光环的程序员。
本文基于http://msdn.microsoft.com/en-us/data/jj574253 搬运,然后参考了一些链接。栗子见原文。本文纯粹概要翻译。
EF6以下的见http://msdn.microsoft.com/zh-cn/data/jj574253
Release |
摘要 |
备注 |
EF 6.1 |
1工具整合。 EF Power Tools提供了一个一致的方式去创建一个新的EF模型 2事务提交失败处理.CommitFailureHandler利用了一个拦截事务操作的新特性,能够自动从失败的连接中恢复并提交事务 3IndexAttribute.在Code First model里的属性上标注 [Index],Code First 就会在数据库里对相应字段创建索引。 4公共映射API.该API用来指示属性和类是如何对应数据库的字段列和数据表的,访问修饰符从以往的internal提升为public。 5在配置文件(APP/Web.config)里配置拦截器而无需重新编译程序。 By the way,System.Data.Entity.Infrastructure.Interception.DatabaseLogger是一个能够轻松记录数据库操作的一个新的拦截器。结合先前提到的特性,能够无需重编译而对一个部署好的程序接入数据操作记录功能。 6迁移模型的变化检测更为准确,性能也得到了提高。 7性能提升。体现在初始化期间减少数据库操作,linq查询null相等比较的优化,更快的视图生成(建模),更有效地跟踪多个关联实体 8NuGet上能够找到该版本运行时。 9微软下载中心中有VS2012,2013的工具用于 Model First or Database First。 |
1VS2013里添加实体模型会有多个选项 8 这算什么狗屁新特性... |
EF 6.0.2 |
修正了一些bug。 |
|
EF 6.0.1 |
修正了一些bug。 |
|
EF 6 |
一、工具更新for VS 二、运行时 Entity Framework 6包含了以下运行时特性,它们同时适用于代码优先和EF设计器: 01异步查询和保存.基于.NET4.5的异步模式 02自动连接恢复(Connection Resiliency). 03基于代码的配置 04“依赖解决方案(Dependency Resolution)”.依赖项解析提供了服务定位模式支持,以及可以实现自定义替换。 05拦截/SQL日志. 06经过改进的可测试性。表现在mock或者自己写的测试的借助下,对DbContext和DbSet的测试更为简单 07使用已经打开的DbConnection创建DbContext 08改进的事务支持. 09在.NET 4.0中,有更好的性能,并且支持枚举和空间数据类型 10增强了LINQ查询中的Enumerable.Contains方法 11经过改进的视图生成 12“可插式复数化(Pluggable Pluralization)”和“单数化服务(Singularization Service)” 13实体类Equals或GetHashCode方法的自定义实现 14DbSet.AddRange/RemoveRange.添加/移除DbSet里的多个实体 15DbChangeTracker.HasChanges.查看对数据库任何挂起的更改。 16SqlCeFunctions.提供在 LINQ to Entities 查询中,调用数据库中函数的公共语言运行时 (CLR) 方法。 下面的运行时特性只适用于Code First: 01自定义代码优先约定 02支持将Code First映射到插入、更新、删除的存储过程 03幂等迁移脚本.支持生成从任意版本升级到最新版本的sql脚本。 04可配置的迁移历史表。 05每个数据库有多个上下文 06DbModelBuilder.HasDefaultSchema。一个新的Code First API,允许默认的数据库架构在一处进行配置 07DbModelBuilder.Configurations.AddFromAssembly方法。允许在以Code First Fluent API使用配置类的时候,在一个组件内定义配置类。 08自定义迁移操作 09默认事务隔离级别改为READ_COMMITTED_SNAPSHOT。用Code First建数据库的时候更灵活,死锁更少。 10Entity and complex types can now be nestedinside classes.(真心查不到nestedinside的意思) |
16. using System.Data.Entity.SqlServer; |
其他参考链接:
http://www.infoq.com/cn/news/2013/08/entity-framework-6-rc
http://www.infoq.com/cn/news/2013/06/EF6-Breaking-Changes