下定决心以后用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. 使用node_redis进行redis数据库crud操作

    正在学习使用pomelo开发游戏服务器,碰到node.js操作redis,记录一下 假设应用场景是操作一个用户表的数据 引入node_redis库,创建客户端 var redis = require( ...

  2. 内存耗用:VSS/RSS/PSS/USS

    Terms VSS - Virtual Set Size 虚拟耗用内存(包含共享库占用的内存) RSS - Resident Set Size 实际使用物理内存(包含共享库占用的内存) PSS - P ...

  3. 673. Number of Longest Increasing Subsequence

    Given an unsorted array of integers, find the number of longest increasing subsequence. Example 1: I ...

  4. Tree-669. Trim a Binary Search Tree

    Given a binary search tree and the lowest and highest boundaries as L and R, trim the tree so that a ...

  5. sublime 把 tab 转成 4 个空格

    Preferences -> Settings-User {    "tab_size":4,    "translate_tabs_to_spaces" ...

  6. 使用python进行短信轰炸

    本文作者:i春秋作家——Hacker1ee 大家好,我是1ee(因为在作家群,就不加Hacker这个前缀了,怕被大佬打..) 刚加入i春秋作家组希望大家多多关照,也欢迎大家找我交流 今天我来讲讲我最近 ...

  7. 无apk,怎么获取app的activity

    在做app自动化测试之前,有个前提条件,就是要获取当前app的包名和当前活动的activity.如果有提供了.apk,就可以直接通过adb命令获取到包名和欢迎页面:有种软件是手机自带的的,我们不知道a ...

  8. Window Screen对象

    window.screen 对象包含有关用户屏幕的信息. window.screen对象在编写时可以不使用 window 这个前缀.一些属性: screen.availWidth // 可用的屏幕宽度 ...

  9. Oracle 数据库维护管理之--数据库基本信息表管理与优化参考1

    1.查看当前系统中的会话(如果权限不足,请使用sys或者system用户登录): select * from v$session t; 2.查看此会话下正在执行的sql语句:select sql_te ...

  10. LINUX 实现端口转发 - 安装使用rinetd

    网上查找安装rinetd 安装时候问题如下一致,找到此文,方解决. 源地址 系统环境:centos 5.4 系统需要gcc组件 yum -y install gcc*  安装完毕以后 首先下载wget ...