随着 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. PHP面试总结

    从8月15号来到北京一直到今天,一月有余.来的这段时间一直准备笔试面试,大大小小的公司,乱七八糟面了10多家,近期才安顿下来.面试的这段时间感觉自己成长了不少.初来到这个陌生的城市一脸茫然,不会乘地铁 ...

  2. 关于 Java(TM) Platform SE binary 已停止工作 的解决方法

    一.问题描述 昨天晚上Myeclipse还用着好好的,今天早上打开工程,只要运行就卡住,大半天弹出个消息窗口:Java(TM) Platform SE binary 已停止工作. 如图 关闭Myecl ...

  3. Asp.net平台下网站性能调优的实战方案(转)

    转载地址:http://www.cnblogs.com/chenkai/archive/2009/11/07/1597795.html 前言 最近帮朋友运营的平台进行了性能调优,效果还不错,所以写出来 ...

  4. C++ Tips and Tricks

    整理了下在C++工程代码中遇到的技巧与建议. 0x00 巧用宏定义. 经常看见程序员用 enum 值,打印调试信息的时候又想打印数字对应的字符意思.见过有人写这样的代码 if(today == MON ...

  5. 【Java EE 学习 72 上】【数据采集系统第四天】【增加调查logo】【文件上传】【动态错误页指定】【上传限制】【国际化】

    增加logo的技术点:文件上传,国际化 文件上传的功能在struts2中是使用文件上传拦截器完成的. 1.首先需要在页面上添加一个文件上传的超链接. 点击该超链接能够跳转到文件上传页面.我给该表单页面 ...

  6. UWP学习记录11-设计和UI

    UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...

  7. RadioGroup 和 ViewPager 绑定 实现切换

    package com.jereh.helloworld.activity.day12; import android.app.Activity; import android.os.Bundle; ...

  8. Python3的tkinter写一个简单的小程序

    一.这个学期开始学习python,但是看了python2和python3,最后还是选择了python3 本着熟悉python的原因,并且也想做一些小程序来增加自己对python的熟练度.所以写了一个简 ...

  9. VIew-CoordinatorLayout 笔记

    CoordinatorLayout 协调者:一般会是两个控件,一个Dependency一个child ,CoordinatorLayout的主要功能就是协调这两个控件,使child跟随Dependen ...

  10. .NET CLI 命令

    您可以立即使用的部分通用 .NET CLI 命令 命令 说明 dotnet new 使用 C# 语言初始化用于类库或控制台应用程序的有效项目. dotnet restore 还原在指定项目的 proj ...