内容简介:EF Core 3.0 Preview 7 and EF 6.3 Preview 7已经发布,根据官方博文,下面是更新内容: EF Core 3.0 Preview 7 新特性: 查询改进:在完成的新 LINQ 实现方面取得了很大的进展。例如,GroupBy、拥有类型的自动包...
EF Core 3.0 Preview 7 and EF 6.3 Preview 7已经发布,根据官方博文,下面是更新内容:
EF Core 3.0 Preview 7 新特性:
- 查询改进:在完成的新 LINQ 实现方面取得了很大的进展。例如,GroupBy、拥有类型的自动包含和查询标记的转换现在又起作用了。另外,在 EF Core 中,首次支持 LINQ 集操作符的 SQL 翻译,如 UNION、CONAT、Intersecect 和 EXT。
- 其他主要新特性:Preview 7 还包含一个新的 API,用于拦截数据库操作。这与 EF 6 中存在的截取功能非常相似,它允许编写简单的逻辑,只要打开数据库连接、提交事务或执行查询,EFCore 就会自动调用该逻辑。拦截器通常允许在操作发生之前或之后拦截它们。当在它们发生之前拦截它们时,可以旁路执行并提供截取逻辑的备用结果。
例如,要操作命令文本,创建一个 IDbCommandInterceptor:
public class MyCommandInterceptor : DbCommandInterceptor
{
public override InterceptionResult? ReaderExecuting(
DbCommand command,
CommandEventData eventData,
InterceptionResult? result)
{
// Manipulate the command text, etc. here...
command.CommandText = command.CommandText...
return result;
}
}
并将其注册到 DbContext 中:
services.AddDbContext(b =>
b.UseSqlServer(connectionString)
.AddInterceptors(new MyCommandInterceptor()));
- 获取 Preview 7 运行时和工具:EF Core 3.0 是专门作为 NuGet 包分发的。与以往相同,通过 NuGet 用户界面、Visual Studio 中的 Package Manager 控制台或 DotNet Add Package 命令对 Preview 7 添加或升级 runtime 。在所有情况下,包括允许安装预发布版本的选项。在 3.0 中,DotNet ef CLI 工具不再作为 .NET Core SDK 的一部分发布,因此在执行迁移或 Scanffold 命令之前,必须将其安装为全局 工具 或本地工具。由于 DotNet CLI 工具的限制,安装预览工具需要在安装命令中指定预览版本的至少一部分,例如,要将 DotNet ef 3.0 预览安装为全局工具,通过运行:
$ dotnet tool install --global dotnet-ef --version 3.0.0-*
EF 6.3 Preview 7 新特性:
在此预览中,完成了 EF 6.3 包在 .NET Core 项目上工作所需的大部分工作,并在所有类型的项目中使用了 NuGet PackageReference。
在 EF 6.3 内,仍有三个主要问题:
- 在 .NET Core 项目上工作的 NuGet 包管理器控制台的迁移命令:这项工作现已完成,并可在 Nightly 版中使用,这将是 preview 8 的一部分
- 更新的 Visual Studio EF6 设计器,可以处理新的项目文件和针对 .NET Core 的项目:这项工作尚未开始,计划对 Visual Studio 2019 年进行更新。同时,官方建议在以 .NET Framework 为目标的项目中处理 EDMX 文件,然后将 EDMX 的最终版本复制到 .NET Core 项目中。
- 迁移命令的跨平台命令行体验,类似于 dotnet ef,但适用于 EF6:这个在计划中。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网
猜你喜欢:- NPM包(模块)发布、更新、撤销发布
- 有赞灰度发布与蓝绿发布实践
- 【重磅发布】Linkis 0.10.0 版本发布
- BeetlSQL 3.0.9 发布,Idea 插件发布
- 贝密游戏 0.7.0 发布,发布斗地主
- 【重磅发布】DataSphere Studio 0.9.0 版本发布
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。