下定决心以后用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

[整理]EF6.X更新了什么(版本历史中文版)的更多相关文章

  1. php版本历史

    php最初就是为了快速构建一个web页面而迅速被大家广为接受的.它的好处是在代码中能内嵌html的代码,从而让程序员能再一个页面中同时写html代码和php代码就能生成一个web页面. 这篇文章用时间 ...

  2. Xcode各版本官方下载, Mac和IOS及Xcode版本历史

    官方下载, 用开发者账户登录,建议用Safari浏览器下载. 官方下载地址: https://developer.apple.com/xcode/downloads/ Xcode 7 7.2 : ht ...

  3. Xcode各版本官方下载及百度云盘下载, Mac和IOS及Xcode版本历史.

    官方下载, 用开发者账户登录,建议用Safari浏览器下载. 官方下载地址: https://developer.apple.com/xcode/downloads/ 百度云盘下载地址: http:/ ...

  4. [IOS]Xcode各版本官方下载及百度云盘下载, Mac和IOS及Xcode版本历史

    官方下载, 用开发者账户登录,建议用Safari浏览器下载. 官方下载地址: https://developer.apple.com/xcode/downloads/ 百度云盘下载地址 http:// ...

  5. android开发--数据库(更新或者降低版本)

    Andoird的SQLiteOpenHelper类中有一个onUpgrade方法. 1. 帮助文档里说的"数据库升级"是指什么? 你开发了一个应用,当前是1.0版本.该程序用到了数 ...

  6. Servlet与JSP版本历史以及Tomcat支持的版本

    查询这个的关键字:Java EE的版本历史. JavaServer Pages (JSP) Java Servlet 参考: https://en.wikipedia.org/wiki/Java_EE ...

  7. 整理sqlserver 级联更新和删除 c#调用存储过程返回值

    整理一下级联更新和删除 c#调用返回值 use master go IF exists(select 1 from sysdatabases where name='temp') BEGIN DROP ...

  8. 解决Windows 7下IE11无法卸载、无法重新安装,提示安装了更新的IE版本

    2013年12月14日 iefans 有用户反馈在Windows 7系统上安装IE11时发现安装程序似乎出了问题,等待了很长时间都没有响应之后就断开了电脑的电源.之后IE11浏览器虽然能使用,却无法安 ...

  9. Github如何提交修改的代码以及更新到最新版本

    最近有人问我,Github上如何把修改fork到的代码提交到原版本上去,以及如何更新到最新的版本.只针对初学者,大神的话勿喷. 首先说第一个问题. 进入到你修改的某个repository里面(以本人的 ...

随机推荐

  1. python web开发——c5 图片上传 flask-uploads 云储存sdk

    坑1:上传图片时,py文件中@app.route('/upload/',methods = {'post','get'})中upload后如有斜杠,则postman中发送post时的网址中也要为upl ...

  2. Elasticsearch入门 + 基础概念学习

    原文地址:https://www.cnblogs.com/shoufeng/p/9887327.html 目录 1 Elasticsearch概述 1.1 Elasticsearch是什么 1.2 E ...

  3. D - 统计同成绩学生人数

    点击打开链接 读入N名学生的成绩,将获得某一给定分数的学生人数输出.  Input 测试输入包含若干测试用例,每个测试用例的格式为  第1行:N  第2行:N名学生的成绩,相邻两数字用一个空格间隔.  ...

  4. 【wireshark】插件开发(三):Lua插件 Dissector

    // TODO: 部分内容需要修改 1. 骨架 首先新建一个文件,命名为foo.lua,注意此文件的编码方式不能是带BOM的UTF8,否则wireshark加载它时会出错(不识别BOM): -- @b ...

  5. eclipse上搭建Spring环境

    搭建环境之前要下载Spring Tool Suite和Spring framework 1.Spring IDE 下载(也叫Spring Tool Suite 简称 STS),进官网,直接给链接htt ...

  6. Alamofire源码导读三:返回的处理逻辑

     以DataRequest 为例子. 最简单的返回 URLSession 有一个方法,可以构建 URLSessionDataTask func dataTask(with url: URL, com ...

  7. YYYY-mm-dd HH:MM:SS 时间格式

    YYYY-mm-dd HH:MM:SS部分解释 d               月中的某一天.一位数的日期没有前导零.    dd             月中的某一天.一位数的日期有一个前导零.   ...

  8. js实现双向链表, 双向链表需要增加一个previous属性

    双向链表, 双向链表需要增加一个previous属性 /*双向链表 * */ function Node(element) { this.element = element; this.next = ...

  9. 面试题:js如何渲染十万条数据并不卡住界面

    这道题考察了如何在不卡住页面的情况下渲染数据,也就是说不能一次性将几万条都渲染出来,而应该一次渲染部分 DOM,那么就可以通过 requestAnimationFrame 来每 16 ms 刷新一次. ...

  10. yum安装报错:Failure when receiving data from the peer

    系统:Centos6.9 操作:yum install -y *.rpm 报错信息: Transaction Summary ===================================== ...