阅读更多

0顶
1踩

企业架构

原创新闻 微软发布最新的EF 6.2 beta 1

2017-05-31 17:39 by 正式记者 powertoolsteam 评论(0) 有4495人浏览

英文原文:Announcing EF 6.2 beta 1

 

5 月初,.NET 团队发布了一个 Core 2.0 实体框架的预览版本,这是 EF 对于 .NET Core 和 .NET Framework 的轻量级、可扩展和跨平台的版本。

 

5 月 23 日,Entity Framework runtime 和相应的 Visual Studio 工具的 6.2 beta 版本已经可用了。EF 6.2 是 Microsoft 更传统的对象/.NET Framework 关系映射器的新迭代。

  

将应用程序升级到 EF 6.2 beta 1 runtime

通常情况下,NuGet 会提供 EF 6 runtime 的预发行版本。在 Visual Studio 中,可以通过“Manage NuGet Packages”窗口(确保“Include prerelease”选项被选中)或“Package Manager Console”中的 NuGet 命令,实现应用程序中 EF 软件包的安装或更新。

 

例如,更新现有项目中的 beta 包:

PM> Update-Package EntityFramework -Version 6.2.0-beta1 -Pre

在新项目中安装 beta 包:

PM> Install-Package EntityFramework -Version 6.2.0-beta1 -Pre

  

升级 Visual Studio 中的 EF 工具

用户可以从 Microsoft 下载中心获取安装程序。只需要下载并安装与正在使用的 Visual Studio 版本对应的文件即可。

 

目前支持 Visual Studio 2012、2013 和 2015。请注意,目前并没有为 Visual Studio 2017 提供测试版的 EF 工具。因为 Visual Studio2017 需要使用不同的机制来将更新分发给 EF 工具这样的组件,.NET 团队计划稍后提供更新日期。

 

EF 工具的大部分代码是跨 Visual Studio 版本共享的,因此任何版本的测试都有助于验证 beta 版的质量。

 

如果用户只安装了 Visual Studio 2017,仍然可以将应用程序升级到使用 6.2 Beta 1 版本的 EF runtime,同时继续使用 Visual Studio 中包含的 EF 工具。

  

降低 Visual Studio 中的 EF 工具

当用户安装此测试版时,它会替换掉 Visual Studio 中包含的工具或安装的任何先前版本。如果用户在使用此测试版过程中,遇到任何问题, Visual Studio 附带的工具可以将工具还原到之前的版本。可以按照以下步骤进行操作:

  • 使用“添加/删除程序”,卸载 Visual Studio 的实体框架工具

  • 修复 Visual Studio 安装

  

EF 6.2 beta 1 中有什么新功能?

虽然 EF 团队的重点工作是为 EF Core 增加新功能和改进,但是也计划继续修复一些重要 bug,实施小型改进,并接受社区对 EF 6 代码库的贡献。

 

社区的开源贡献者为 EF 6.2 beta 1 版本的许多提升做出的巨大贡献,在此表示感谢。此版本的完整列表(包括即将推出的 PowerTools 版本中的错误修复)可在 GitHub query 中找到。

  

新功能中值得一提的有以下几点:

  • 通过从永久缓存#275 中加载第一个模型的完成代码来减少启动时间

  可以通过将以下代码加入到应用中来实现该功能:

using System.Data.Entity;
using System.Data.Entity.Infrastructure;

namespace MyApplication
{
    public class MyDbConfiguration : DbConfiguration
    {
        public MyDbConfiguration () : base()
        {
            this.SetModelStore (new DefaultDbModelStore (Directory.GetCurrentDirectory ())); 
        }
    }
}
  • 提供程序报告无效键时 EF 工具更新模型的问题#243

  在某些数据库逆向工程场景中,某些提供程序可能会错误地指示主键列为空。EF 工具不再将其报告为错误,而是会忽略不正确的可空性。

  • 添加 DbFunctions.Like(),使得可以在 SQL 中编写转换为 LIKE 的 LINQ 查询#241

  用法如下:

var  query = db.People.Where(p=> DbFunctions.Like(p.Name,“w%”));

  • Migrate.exe 支持 support -选项#240

  启用使用命令行工具生成用于迁移的 SQL 脚本。

  • 使用参数过多时,从数据库更新大型模型可能导致 sp_executesql 失败#185

  这是与 SQL Server 大数据模型配合使用的长期问题。有关详细信息,请参阅“Call to action for provider writers”。

  • EF6 不能与序列主键一起使用#165

  现在可以采用与序列兼容的机制,在 runtime 使用标志来更改 EF 检索插入 SQL Serer 的生成值:

  • 更新 SQL Azure 执行策略错误号#83

  将额外的错误纳入到临时性错误列表,以便能够根据客户反馈和 Azure SQL 数据库上的新数据进行恢复。

  • 使用“The SqlParameter is already contained by another SqlParameterCollection”命令重试查询或 SQL 命令失败#81

  在使用重试执行策略时,该问题会影响多个 API。

  • 调试器中 DbQuery.ToString()的评估经常会超时#73

  根据 Debugger 团队的建议,.NET 团队添加了一个新的 Sql 属性,以便在诸如 Autos,Locals 或 Watch 之类的调试窗口中 LINQ 查询被检查时使用。仍然可以使用`ToString()方法来获取 SQL,但调试器已经不会使用了。

  

为 provider 提供 Call to action

.NET 团队怀疑一些现有的 EF provider 可能会受到此版本中工具包含的修复的不利影响,因此请求 provider 的帮助来验证这一假设。

  

该修复程序解决了 EF 工具的“Update model from database”功能中使用模式发现查询长期存在的问题。对具有大量对象的数据库使用该功能时,模式发现查询可能会包含大量参数。特别是 SQL Server 对每个查询的参数限制为 2100,生成查询和参数的方式可能导致任何超过 300 个对象的模型失败。GitHub 问题更详细地描述了此问题:使用过多参数,从数据库更新大型模型可能导致 sp_executesql 失败#185。

  

有哪些改变

@bengutt 基于原有的想法并实现了这个修复程序,通过对每一个不同值使用重复利用参数对象,实现了模式发现查询所需参数的显著减少了。

 

该修复程序是在跨 provider 和所有当前和以前的 EF 版本中,使用共享代码实现的,这也可能会使非 SQL Server 的 provider 获益。因此希望尽可能多的 provider 使用此新版本。但是,如果对某些 provider 是破坏性的改变,那么将终止将 SQL Server 视作特殊案例的情况。

  

provider 会受到什么影响

任何利用 EF 查询功能来实现模式发现的 provider 都会受到影响。例如通过在数据库模式中提供自己的 SSDL 和 MSL 模型文件,只能受益于或不受参数数量的减少的影响。

 

然而,一些 provider 通过模式发现查询中的模式匹配来实现模式发现,然后将这些模式转化成原生模式发现 API 的调用。这样的提供者需要实现一些逻辑来将查询参数与查询中的过滤器相匹配。根据后一个实现方式的不同,如果参数的数量或顺序会随着修复程序改变,则可能会中断此参数。

  

如果你的 provider 因为修复而损坏,请报告

如果你的 provider 已损坏,请在 Call to action for provider writers: test compatibility with schema discovery queries in EF Tools 6.2 地 GitHub 问题下留言。#195

  

beta 1 之后是什么?

.NET 团队计划短期内在 EF 6 方面做下几件事情:

  • 正在考虑使用 Visual Studio 2017 的兼容性来发布一个 EF 6 PowerTools 的更新。

  • 一旦 .NET 团队收到并分析了 beta 版本的反馈,将决定是否需要发布另外一个预览版本,还是设定好 6.2 版本的最终发布日期。

  • 如前所述,.NET 团队将在后续发布 Visual Studio 2017 的 EF 6.2 工具。

目前已有很多产品支持 EF,其中值得一提的是 ComponentOne,ComponentOne 基于 EF6 的版本能够帮助用户充分发掘 EF6 的潜力并使其在 WinForms 应用中更加易用。

 

关于葡萄城
葡萄城是全球最大的控件提供商,世界领先的企业应用定制工具、企业报表和商业智能解决方案提供商,为超过75%的全球财富500强企业提供服务。
转载请注明出自:葡萄城控件
0
1
评论 共 0 条 请登录后发表评论

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 微软发布 EntityFramework 6.2 beta 1

    5 月初,.NET 团队发布了一个 Core 2.0 实体框架的预览版本,这是 EF 对于 .NET Core 和 .NET Framework 的轻量级、可扩展和跨平台的版本。 5 月 23 日,Entity Framework runtime 和相应的 Visual Studio 工具的 ...

  • Java面试宝典Beta5.0

    1. 面向对象都有哪些特性以及你对这些特性的理解 21 2. 访问权限修饰符public、private、protected, 以及不写(默认)时的区别(2017-11-12) 22 3. 如何理解clone对象 22 二、JavaSE语法(2017-11-12-wl) ...

  • MySQL笔记整理

    1. 数据库的基本概念 1.1 什么是数据库 数据库(DataBase) 就是存储和管理数据的仓库 其本质是一个文件系统, 还是以文件的方式,将数据保存在电脑上 1.2 为什么使用数据库 数据存储方式的比较 存储方式 ...

  • 每周.NET前沿技术文章摘要(2017-05-24)

    覆盖.NET ,ASP.NET等内容: .NET Free eBook/Guide on ‘.NET Microservices – Architecture for Containerized .NET Applications’ 链接:https://blogs.msdn.microsoft.com/cesardelatorre/2017/05/10/free-...

  • 装机必备的100个软件下载和注册码

    装机必备的100个软件下载和注册码第 1 名 网际快车 FlashGet 1.65 简体中文版 正式版注册码 :fgf-keehkevcd2z6o03mukpdgb24hazdpp8ya3xonrr9或fgc-ip18a4umpsrqb5rqvr9cr0wahns3ov1k1l3jhfh2 第 2 名 RealONE ...

  • K8S集群安装

    文章目录手把手教你搭建Kubernetes集群(含脚本/视频)一、 环境准备1. 1 机器环境1.2 设置主机别名1.3 服务器静态IP配置1.4 查看主机名1.5 配置IP host映射关系1.6 安装依赖环境1.7 防火墙配置1.8 关闭selinux1.9 ...

  • 【Xamarin挖墙脚系列:Mono项目的图标为啥叫Mono】

    因为发起人大Boss :Miguel de lcaza 是西班牙人,喜欢猴子.........这篇博客《Mono在国内的发展历程(相关文章汇总)》,2000年8月,微软、惠普和英特尔共同制定CLI和C#编程语言的标准规格,微软在2001年把...

  • openapi中job提交

    TASKROLE_NAME: taskrole FC_TASKROLE_UID: cb7d2180-42f7-11ee-afe1-3e7a5abc8c82 FC_TASK_ATTEMPT_ID: 0 FC_TASK_INDEX: 0 FC_TASK_UID: cb7d21aa-42f7-11ee-afe1-3e7a5abc8c82 container.apparmor.security.beta....

  • linux就该这么学

    目录 第0章 让我们谈谈学习方法和红帽系统。 11 0.1 本书作者简介 11 0.2 学习是件苦差 11 0.3 开源共享精神 12 0.4 为什么要学Linux? 12 0.5 热门的开源系统 13 0.6 认识红帽认证 14 第1章 部署虚拟环境安装linux...1

  • 国内 Mono 相关文章汇总

    2009年,Mono最新版本Mono 2.6,MonnoDevelop发布了2.0,同时Moonlight 1.0也发布了,微软的asp.net mvc 1.0也开源了,可以在Mono上跑了,微软已经开源了不少项目:ASP.NET MVC ,NET Dynamic Language Runtime (DLR)...

  • Visual Studio 2010都有些什么组件

    1.Microsoft .NET Framework 4 框架 <br />参考http://msdn.microsoft.com/en-us/library/ms171868(VS.100).aspx <br />1.1.Microsoft .NET Framework 4 Client Profile <br />这是个好东东,...

  • 云原生系列3-Kubernetes

    1、Kubernetes概述 k8s缩写是因为k和s之间有八个字符。k8s是基于容器技术的分布式架构方案。官网:https://kubernetes.io/zh-cn/ Google在 2014年开源了Kubernetes项目,Kubernetes是一个用于自动化部署、扩展和管理...

  • 云帆技术 GHOST XP SP3 完美装机专业版 V2.5

    【装机精品 白金品质】 云帆技术 GHOST XP SP3 完美装机专业版 V2.5软件名称: YF_GhostXPsp3_NTFS_V2.5.iso软件大小: 693MBCRC32: 15A27980MD5: B4B24C91CF56DCF13D72EF60DD5E2BECSHA-1: 71BEBA553B5A0E6F69D1950CD...

  • 商餐网

    一、 前言 一致的命名模式是托管类库中可预知性与可发现性最重要的元素之一。对这些命名指南广泛的使用和理解将...二.1 大写样式 使用下面的三种大写标识符约定。 二.1.1 Pascal 大小写 将标识符的首字母和后面连接

  • go 生成基于 graphql 服务器库.zip

    格奇尔根 首页 > 文件 > gqlgen是什么?gqlgen是一个 Go 库,用于轻松构建 GraphQL 服务器。gqlgen 基于 Schema 优先方法— 您可以使用 GraphQL Schema 定义语言来定义您的 API 。gqlgen 优先考虑类型安全— 您永远不应该看到map[string]interface{}这里。gqlgen 启用 Codegen — 我们生成无聊的部分,以便您可以专注于快速构建您的应用程序。还不太确定如何使用gqlgen?将gqlgen与其他 Go graphql实现进行比较快速启动初始化一个新的 go 模块mkdir examplecd examplego mod init example添加github.com/99designs/gqlgen到项目的 tools.goprintf '//go:build tools\npackage tools\nimport (_ "github.com/99designs/gqlgen"\n _ "github.com/99designs/gqlgen

  • 基于JAVA+SpringBoot+Vue+MySQL的社区物资交易互助平台 源码+数据库+论文(高分毕业设计).zip

    项目已获导师指导并通过的高分毕业设计项目,可作为课程设计和期末大作业,下载即用无需修改,项目完整确保可以运行。 包含:项目源码、数据库脚本、软件工具等,该项目可以作为毕设、课程设计使用,前后端代码都在里面。 该系统功能完善、界面美观、操作简单、功能齐全、管理便捷,具有很高的实际应用价值。 项目都经过严格调试,确保可以运行!可以放心下载 技术组成 语言:java 开发环境:idea 数据库:MySql8.0 部署环境:maven 数据库工具:navicat

  • 法研杯2021类案检索赛道三等奖方案源码+项目说明+数据.zip

    法研杯2021类案检索赛道三等奖方案源码+项目说明+数据.zip是一个专为计算机相关专业(如计科、信息安全、数据科学与大数据技术等)学生设计的宝贵学习资源。该压缩包包含了完整的项目源码、详细的项目说明文档以及用于训练和测试的数据集,旨在帮助参赛者深入理解并掌握类案检索的相关技术和方法。该项目通过实际案例,展示了如何运用自然语言处理和机器学习技术对法律案件进行智能检索和匹配。项目内容涵盖了从数据预处理、特征提取到模型训练和评估的全过程,为学习和研究类案检索技术提供了全面的参考。本项目不仅适合作为课程设计、期末大作业或毕设项目的参考,也是企业员工提升技能、进行实践操作的优质学习资料。通过实际操作和学习该项目,用户可以加深对类案检索技术的理解,并在实践中不断提升自己的技能水平。请注意,由于该资源包含完整的项目源码和数据集,下载和使用时请确保遵守相关法律法规和道德规范,尊重知识产权和隐私权。同时,建议用户在使用前仔细阅读项目说明文档,了解项目的整体架构和使用方法,以便更好地利用该资源进行学习和研究。

  • 基于Cesium实现的对倾斜摄影模型的单体化分层方案源码.zip

    本资源提供了基于Cesium实现的倾斜摄影模型单体化分层方案的完整源码,旨在帮助开发者深入理解并实践三维地理空间数据的处理与展示。通过Cesium平台,用户能够将倾斜摄影获取的高精度三维模型进行单体化和分层处理,实现对模型中每个独立元素的精细管理和交互操作。该资源适合具备一定计算机编程基础的学习者,特别是对Cesium感兴趣的学生、研究人员及GIS行业从业者。通过下载并学习这些源码,用户可以掌握倾斜摄影模型在Cesium中的加载、单体化以及分层显示等关键技术,进而提升自己在三维地理信息系统开发领域的技能水平。

  • Go 的 PostgreSQL 驱动程序和工具包.zip

    Go 的 PostgreSQL 驱动程序和工具包 pgx - PostgreSQL 驱动程序和工具包pgx 是 PostgreSQL 的纯 Go 驱动程序和工具包。pgx 驱动程序是一个低级、高性能接口,它公开了 PostgreSQL 特定的功能,例如LISTEN/ NOTIFY和COPY。它还包括一个标准database/sql接口的适配器。工具包组件是一组相关的软件包,用于实现 PostgreSQL 功能,例如解析线路协议以及 PostgreSQL 与 Go 之间的类型映射。这些底层软件包可用于实现替代驱动程序、代理、负载均衡器、逻辑复制客户端等。示例用法package mainimport ( "context" "fmt" "os" "github.com/jackc/pgx/v5")func main() { // urlExample := "postgres://username:password@localhost:5432/database_name" conn, err := pgx.Connect(context.B

  • C#ASP.NET中小型超市管理系统源码数据库 SQL2012源码类型 WinForm

    ASP.NET中小型超市管理系统源码 超市管理系统是专门为中小型超市打造的管理系统,可以方便管理时更加准确清晰的查看商品信息, 仓库出售与进货的信息,还有每一个部门员工的信息,也更加直观的体现出每一阶段的商品销售情况; 从而提高项目管理水平,实现了工作的协同化、提高了工作效率 二、功能介绍 1.1 UI Requirements界面要求 (1)界面美观,给用户一种很舒心的感觉。 (2)界面所体现出的功能清晰明了,让用户一目了然。 (3)界面的背景颜色搭配符合超市管理系统界面的设计理念。 1.2 UI Requirements界面要求 (1) 使用ADO.NET与数据库交互制作 (2) 使用Visual Studio设计窗体布局 (3) 使用提供的用控件快速开发 1.3 Development Environment 开发环境 (1) 开发工具:Visua

Global site tag (gtag.js) - Google Analytics