今天 VS2012  .net Framework 4.5   Entity Framework 5.0  三者共同发布了。 ( EF5 Released )

在介绍新特性之前,先与大家回顾一下EF版本变化及一些重要变更:


 框架                          EF         备注 

.net Framework 3.5    EF 1.0

.net Framework 4.0    EF 4.0   EF4.0是集成在 net framework中的,而4.1~4.4仅仅是在其上的引入,并非框架的本身

.net Framework 4.0    EF 4.1   引入了DbContext以及POCO模型,应该算是很大改进

.net Framework 4.0    EF 4.2   修复了4.1的几个bug

.net Framework 4.0    EF 4.3   引入了Code First Migration.有了这个我们就不用通过丢弃数据库修改表结构了。

.net Framework 4.0    EF 4.4   修复了4.3的几个bug,这个也是刚不久发布,很少人用,但是支持.net framework 4.0

.net Framework 4.5    EF 5.0   最新版本 包括四个新特性,之后会主要介绍。

EF 6.0    未来版本,未发布  据官方博客称,将会脱离.net Framework单独存在


首先EF5.0的四个新特性的使用必须在.net framework 4.5下 ,相当的坑爹,就这样不支持.net  framework 4.0了,对于那些无法将服务器升级到.net framework 4.5(仅支持windows server 2008及以上)的产品项目微软并不在乎,无限坑爹啊!!!!

EF5.0带来了总共四个新特性:

1.Enum 类型的支持。

5.0带来的最优秀特性,Enum支持数据库对应类型有  byte  int16 int32  int64 SByte 5中数据库类型。

这样以后我们在开发的时候就无需再为了处理枚举做一些多余的封装了,真是大大减轻了开发者的代码量啊,很实质。

同时支持Code First  以及通过 EF设计器来设计

2.Spatial 类型的支持。  这个类型一般在地理定位的时候用到的类型,例如数据库中存储 经度 或是 纬度的坐标即可以通过此类型进行存储。现在做地理位置开发的码农有福了。

同时支持Code First  以及通过 EF设计器来设计

3.Table-Valued Functions  函数的支持。

仅支持 DataBase First ,也就是仅仅只能通过设计器来实现支持。

例如:

    var students = from s in context.GetStudentGradesForCourse(CourseID) 
                            where s.Grade >= Grade
                            select new
                            {
                                s.Person,
                                s.Course.Title

};

红色的部分就是我们在数据中写的创建的函数。 这个个人不经常使用,主要是因为用函数写一些逻辑会带来维护上的一些麻烦,成本很大。

4.编辑器各功能的加强。

可以在Context之间进行实体的拖拽,以及一些实体设计器颜色变化的控制等等。 快速开发的利器。主要因为我很少用设计器开发,所以也很少关注,大部分时间全花在CodeFrist上了,设计器这种简单操作反而不会了,无所谓了,反正不喜欢设计器。

5.其实第五个可以不认为是新特性,应该算是性能的提升,EF5较之前版本在性能上有很大的提升,主要原因是由于对Linq ot Entity 缓存的处理。第一次通过Linq to Entity 查询性能与之前版本几乎一样,但第二次及以后在进行同样查询就大大不一样了,由于缓存了之前的查询,大大减少了数据的查询时间。

再就是在EF5中,默认创建的Context是DbContext了,以前默认ObjectContext需要手动改。
从这点可以看出微软是十分推崇DbContext的,因为他的确为我们带来了许多方便,但是我们仍可以切换到ObjectContext,毕竟
OjbectContext还是有许多底层东西的,DbContext仅仅是在他之上进行了一些封装。

Entity Framework 5.0的更多相关文章

  1. 开发 ASP.NET vNext 续篇:云优化的概念、Entity Framework 7.0、简单吞吐量压力测试

    继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之后, 关于云优化和版本控制: 我本想做一下MAC和LINUX的self-ho ...

  2. [EF2]Sneak Preview: Persistence Ignorance and POCO in Entity Framework 4.0

    http://blogs.msdn.com/b/adonet/archive/2009/05/11/sneak-preview-persistence-ignorance-and-poco-in-en ...

  3. Entity Framework 5.0系列之Code First数据库迁移

    我们知道无论是"Database First"还是"Model First"当模型发生改变了都可以通过Visual Studio设计视图进行更新,那么对于Cod ...

  4. 精进不休 .NET 4.5 (12) - ADO.NET Entity Framework 6.0 新特性, WCF Data Services 5.6 新特性

    [索引页][源码下载] 精进不休 .NET 4.5 (12) - ADO.NET Entity Framework 6.0 新特性, WCF Data Services 5.6 新特性 作者:weba ...

  5. 在Entity Framework 4.0中使用 Repository 和 Unit of Work 模式

    [原文地址]Using Repository and Unit of Work patterns with Entity Framework 4.0 [原文发表日期] 16 June 09 04:08 ...

  6. 云优化的概念、Entity Framework 7.0、简单吞吐量压力测试

    云优化的概念.Entity Framework 7.0.简单吞吐量压力测试 继续上一篇<开发 ASP.NET vNext 初步总结(使用Visual Studio 2014 CTP1)>之 ...

  7. 浅析Entity Framework Core2.0的日志记录与动态查询条件

    前言 Entity Framework Core 2.0更新也已经有一段时间了,园子里也有不少的文章.. 本文主要是浅析一下Entity Framework Core2.0的日志记录与动态查询条件 去 ...

  8. Entity Framework 6.0 对枚举的支持/实体添加后会有主键反回

    实验 直接上代码,看结果 实体类 [Flags] public enum FlagsEnum { Day = , Night = } public class EntityWithEnum { pub ...

  9. Entity Framework 6.0 Tutorials(1):Introduction

    以下系统文章为EF6.0知识的介绍,本章是第一篇 原文地址:http://www.entityframeworktutorial.net/entityframework6/introduction.a ...

随机推荐

  1. Sublime Text 3 搭建 React.js 开发环境

    sublime有很强的自定义功能,插件库很庞大,针对新语言插件更新很快,配合使用可以快速搭建适配语言的开发环境. 1. babel 支持ES6, React.js, jsx代码高亮,对 JavaScr ...

  2. Linux解压 tar命令

    tar [-cxtzjvfpPN] 文件与目录 ....参数:-c :建立一个压缩文件的参数指令(create 的意思):-x :解开一个压缩文件的参数指令!-t :查看 tarfile 里面的文件! ...

  3. 李洪强iOS开发之OC[015]#pragma mark的使用

    // //  main.m //  14 - #pragma mark的使用 // //  Created by vic fan on 16/7/10. //  Copyright © 2016年 李 ...

  4. python list去重的方法

    转载于:http://yxmhero1989.blog.163.com/blog/static/112157956201381443244790/ Python很简洁 我们喜欢简单有效的代码   一. ...

  5. 223. Rectangle Area

    题目: Find the total area covered by two rectilinear rectangles in a 2D plane. Each rectangle is defin ...

  6. 【c】time.h

    表示时间的三种类型 日历时间:从一个时间点到现在的秒数,用time_t表示 始终滴答时间:从进程启动到现在时钟的滴答数(每秒一般包含1000个).用clock_t表示 分解时间:分解的数据结构如下.用 ...

  7. Servlet3.0的新特性

    注意:Servlet3.0的项目一定要使用Tomcat7.0才能看到效果!! 1.新增标注支持     在Servlet3.0的部署描述文件web.xml的顶层标签<web-app>中有一 ...

  8. VC 6.0 LNK2005 错误 处理

    造成LNK2005错误主要有以下几种情况: 1.重复定义全局变量.可能存在两种情况: A.对于一些初学编程的程序员,有时候会以为需要使用全局变量的地方就可以使用定义申明一下.其实这是错误的,全局变量是 ...

  9. Android开发之三种动画

    转载:http://www.cnblogs.com/angeldevil/archive/2011/12/02/2271096.html http://www.lightskystreet.com/2 ...

  10. Kaleidoscope for mac

    mac下的对比工具Kaleidoscope,是一款不错的对比工具,界面被广大用户所喜爱. window下使用beyond compare 3,具体设置步骤,请见:http://www.cnblogs. ...