皇上,还记得我吗?我就是1999年那个Linux伊甸园啊-----24小时滚动更新开源资讯,全年无休!

Entity Framework Core 3.0 和 Entity Framework 6.3 发布

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 内,仍有三个主要问题:

  1. 在 .NET Core 项目上工作的 NuGet 包管理器控制台的迁移命令:这项工作现已完成,并可在 Nightly 版中使用,这将是 preview 8 的一部分
  2. 更新的 Visual Studio EF6 设计器,可以处理新的项目文件和针对 .NET Core 的项目:这项工作尚未开始,计划对 Visual Studio 2019 年进行更新。同时,官方建议在以 .NET Framework 为目标的项目中处理 EDMX 文件,然后将 EDMX 的最终版本复制到 .NET Core 项目中。
  3. 迁移命令的跨平台命令行体验,类似于 dotnet ef,但适用于 EF6:这个在计划中。

转自 https://www.oschina.net/news/108508/entity-framework-core-3-0-and-entity-framework-6-3-released

分享到:更多 ()