下定决心以后用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. 关于EF中使用Migrations的一些小提示

    在运行正常的情况下,EF的数据迁移功能非常强大.但是当它出现状况时,试图找到问题发生的原因时通常都很让人郁闷(没法调试,提示信息很模糊等等原因).我花了很多时间来确保在我的迁移能工作正常,然后我整理了 ...

  2. Kettle 使用入门

    Kettle是一款国外开源的ETL工具,纯java编写,可以在Window.Linux.Unix上运行,数据抽取高效稳定. 本文介绍一个入门例子:使用Kettle从动态指定的文件名对应的文本文件里抽取 ...

  3. log4j学习(一)最简单的例子

    前言: 之前笔者一直是在System.out中打日志的,由于笔者大部分时候是编写在tomcat容器里运行的一些个小web应用,所以这么做似乎没什么问题:打印出来的日志都可以在tomcat自己的log目 ...

  4. 《Python绝技:运用Python成为顶级黑客》 用Python刺探网络

    1.使用Mechanize库上网: Mechanize库的Browser类允许我们对浏览器中的任何内容进行操作. #!/usr/bin/python #coding=utf-8 import mech ...

  5. SpringBoot程序远程debug

    所谓的远程调试就是服务端程序运行在一台远程服务器上,我们可以在本地服务端的代码(前提是本地的代码必须和远程服务器运行的代码一致)中设置断点,每当有请求到远程服务器时时能够在本地知道远程服务端的此时的内 ...

  6. [bug]小米部分机型(5x、mix2)中,文字/背景闪现然后消失

    2/9更新 后来遇到float 元素也这样,改成flex布局就没问题.不知道具体原因. 描述: 使用vue 2.4开发HTML5时,遇到在小米部分机型(5x.mix2)中,文字/文字背景闪现然后消失. ...

  7. nodejs改变代码不需要重启的方法

    1.node 搭建本地服务器 在F:/node文件夹下新建app.js const http = require('http'); http.createServer((req, res) => ...

  8. linux下mysql主从复制搭建

    目标:搭建两台MySQL服务器,一台作为主服务器,一台作为从服务器,实现主从复制 环境: 主数据库: 192.168.1.1 从数据库: 192.168.1.2 mysql安装可参考:https:// ...

  9. Linux服务器快速安装可视化桌面且可以远程RDP远程连接

    我们很多网友在选择Linux服务器的时候并不是用来做网站的,有些是需要用到远程桌面安装软件或者是其他用途.但是我们知道大部分海外主机商是只有LINUX系统且没有可视化桌面,当然也有一些商家是支持安装G ...

  10. Web开发常用在线工具

    http://tool.oschina.net/ 爬去网页工具: http://www.keydatas.com/product