随着 Entity Framework 最新主版本 EF6 的推出,Microsoft 对象关系映射 (ORM) 工具达到了新的专业高度,与久负盛名的 .NET ORM 工具相比已不再是门外汉。 EF 已经完全成熟,正在超越以前广泛使用的工具。

自 2012 年 EF5 发布后,这种做法带来了两个方面的进步。 首先,从 .NET Framework 中提取所有的 Entity Framework API,并与团队同时正在开发的非常规功能 API 组合在一起。 其次,整个开发工作改用了开源模型。 EF6 在以下网站中公开开发:entityframework.codeplex.com。 您不仅能通过会议记录、签入和可下载夜间生成了解团队所做的工作,还可以向 EF6 提供源代码(但是要在 EF 团队的完全监督之下)。

请记住 EF6 是演变而不是革命。 几乎您原先掌握的所有 EF 技能都没有变化,例如如何生成 Entity Framework 模型以及如何在您的应用程序中使用 EF。 尽管 EF6 是在 ORM 基础上发展而来的,但是并没有改变它根本的工作方式。 如果您已经投入时间学习 EF,那么这种投入将不会白费。 EF6 在某些方面变化还是比较大的,但是这些变化仅限于部分命名空间的变化,如果您有准备的话会很容易处理。

EF6 的功能分为以下几类:

  1. 免费提供的功能:这些功能属于核心功能的一部分。 您甚至无需知道它们有什么作用,更不必说需要知道有什么新的代码了。 该组包括的功能有通过重写视图生成引擎和查询编译修改来提高性能,由于 DbContext 能使用打开的连接而获得的稳定性,以及 Entity Framework 创建的 SQL Server 数据库的更改设置。
  2. 级别设置功能:改进较大之处是 Code First 现在支持映射存储过程,而在设计器中创建的模型已支持此功能。 第 9 频道视频对此功能已进行了颇多介绍(例如位于以下网址的视频:http://channel9.msdn.com/Events/TechDays/Belgium-2013/70),而且 CodePlex 网站提供了详细的规范介绍。
  3. 另外一处更改更为有趣。 正如我刚才提到的,EF6 的 EF API 是从 .NET Framework 中提取的;它们现已完全封装在 NuGet 程序包中。 这意味着 EF5 采用的部分功能(例如枚举、空间数据支持和性能改进)不再依赖于 .NET 4.5。 所以,如果您的 EF6 使用的是 .NET 4,那么这些功能最终会给您带来帮助。
  4. 我也将 EF 设计器归入了这一类。 从 2013 版开始,Visual Studio 已取消此功能,但是作为 Visual Studio 的扩展功能提供。 对于 EF6 而言,将设计器作为扩展功能具有相当大的好处。 以后团队将能够直接向设计器添加功能,包括 Entity Framework Power Tools 中当前提供的功能。 通过使设计器与 Visual Studio 分离,可以使 Microsoft 为 Visual Studio 2012 和 Visual Studio 2013 提供 EF6 工具。
  5. 专家功能:这些功能是基本 EF 应用程序示例所不具有的、您渴望拥有的功能。 EF6 中有许多这样的功能:支持异步查询和保存、返回自定义 Code First 约定、利用新的 DbConfiguration 类型提高可扩展性(依赖于较低级别的 EF6 IDbDependency 解析程序)、支持单元测试模拟、可配置不稳定连接的重试次数等。 您无需成为认证专家就能使用这些功能,但您在使用时肯定会感觉像专家,具体可以参考文章Entity Framework 6:专家版本。

Nido Framework 是一个基于.NET 4和 Entity Framework 6的框架,它的开源协议是GPL2,项目地址是https://nidoframework.codeplex.com/。作者在开发这个框架之前在codeproject上写了一篇文章Architecture Guide: ASP.NET MVC Framework + N-tier + Entity Framework and Many More,最近作者又写了另外一篇介绍文章Introduction to Nido (FREE) Framework .NET/ C#

Upgrading to EF6

Entity Framework 6 中 Code First 的好处

ASP.NET/C# Development with Nido Framework for Dummies

基于Entity Framework 6的框架Nido Framework的更多相关文章

  1. Apworks框架实战(六):使用基于Entity Framework的仓储基础结构

    在前面的章节中,我们已经设计了一个简单的领域模型,接下来我们希望能够实现领域模型的持久化及查询.在Apworks中,实现了面向Entity Framework.NHibernate以及MongoDB的 ...

  2. 基于.NET的微软ORM框架视频教程(Entity Framework技术)

    基于.NET的微软ORM框架视频教程(Entity Framework技术) 第一讲  ORM映射 第二讲 初识EntifyFramework框架 第三讲 LINQ表达式查询 第四讲 LINQ方法查询 ...

  3. 在Apworks数据服务中使用基于Entity Framework Core的仓储(Repository)实现

    <在ASP.NET Core中使用Apworks快速开发数据服务>一文中,我介绍了如何使用Apworks框架的数据服务来快速构建用于查询和管理数据模型的RESTful API,通过该文的介 ...

  4. 创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表

    创建ASP.NET Core MVC应用程序(3)-基于Entity Framework Core(Code First)创建MySQL数据库表 创建数据模型类(POCO类) 在Models文件夹下添 ...

  5. 基于Entity Framework的自定义分页,增删改的通用实现

    简介 之前写个一个基于Dapper的分页实现,现在再来写一个基于Entity Framework的分页实现,以及增删改的通用实现. 代码 还是先上代码:https://github.com/jinwe ...

  6. 基于Vue的Quasar Framework 介绍 这个框架UI组件很全面

    基于Vue的Quasar Framework 介绍 这个框架UI组件很全面 基于Vue的Quasar Framework 中文网http://www.quasarchs.com/ quasarfram ...

  7. CefSharp基于.Net Framework 4.0 框架编译

    CefSharp基于.Net Framework 4.0 框架编译 本次源码使用的是Github上CefSharp官方的79版本源码 准备 IDE Visual Studio 2017 Enterpr ...

  8. Win2003部署Framework 4.5框架的MVC4项目

    [一篮饭特稀原创,转载请注明出自http://www.cnblogs.com/wanghafan/p/4554672.html]  Win2003中IIS6部署Framework 4.5框架的MVC4 ...

  9. 给外行或者刚入门普及一下关于C#,.NET Framework(.NET框架),.Net,CLR,ASP,ASP.Net, VS,以及.NET Core的概念

    一.概念 1. C# :C#是微软公司发布的一种面向对象的.运行于.NET Framework之上的高级程序设计语言. 2..NET Framework(.NET框架):.NET framework ...

随机推荐

  1. Activemq的连接方式

    http://blog.csdn.net/liangguo03/article/details/7011227 http://blog.csdn.net/johnnie_deng/article/de ...

  2. 关于QImage提取单色通道方法(vector)

    转载请标明处: 作者:微微苏荷 本文地址:关于QImage提取单色通道方法(vector) 近日,用QT和mxnet结合做一个图像识别的demo.遇到需要把图片从QImage转为vector单色分离的 ...

  3. CentOS Linux服务器安全设置

    转自:http://www.osyunwei.com/archives/754.html 引言: 我们必须明白:最小的权限+最少的服务=最大的安全 所以,无论是配置任何服务器,我们都必须把不用的服务关 ...

  4. windows server 2008禁止ping

    在cmd命令行中通过ping一个主机名.域名或ip地址可以获取到该机器的ip.操作系统等很多信息,处于安全考虑,很多时候不希望服务器被ping,在windows server 2008 r2可以这样操 ...

  5. 第三十一篇:SOUI布局之相对于特定兄弟窗口

    SOUI中通过pos的标志如:[, {, }, ],这4个标志可以相对于前一个及后一个兄弟窗口,但是有时候希望相对于不是前后窗口的兄弟窗口,比如一个通过一个中心窗口同时定义它的上下左右4个窗口,这个时 ...

  6. Python-Hello world!

    一.Python安装 Windows 1.下载安装包 https://www.python.org/downloads/ 2.安装 默认安装路径:C:\python3.5 3.配置环境变量: [右键计 ...

  7. Winform窗体最大化的时候,如何指定窗体的位置、大小

    一.重写窗体的SizeChanged事件不能改变窗体最大化的位置和大小. public partial class Form2 : Form { public Form2() { Initialize ...

  8. CozyRSS开发记录19-窗口标题栏交互

    CozyRSS开发记录19-窗口标题栏交互 1.谈谈对mvvm解耦的看法 在使用mvvm时,如何操作窗口,这是一个问题.这个问题的关键点是:mvvm是把view和viewmodel解耦了的,很多写法一 ...

  9. MIT 6.828 JOS学习笔记16. Lab 2.2

    Part 3 Kernel Address Space JOS把32位线性地址虚拟空间划分成两个部分.其中用户环境(进程运行环境)通常占据低地址的那部分,叫用户地址空间.而操作系统内核总是占据高地址的 ...

  10. HTML5开发笔记:图片上传预览

    我们知道通过<input type="file">可以用来进行一个图片或者文件的上传,然而浏览器自带的一个缩略图预览的功能其实是相当不美观的,很多时候我们希望可以在上传 ...