顶级实体框架的核心工具与扩展

zhaojp0 2020-09-18

顶级实体框架的核心工具与扩展https://www.devart.com/entitydeveloper/

Entity Framework Visual Editor

Entity Framework Visual Editor不但支持Entity Framework Core、Entity Framework 6及其更高的版本,而且能够作为Visual Studio 2019的扩展。您可以从Visual Studio市场的链接-- https://marketplace.visualstudio.com/items?itemName=michaelsawczyn.EFDesigner,下载该工具。作为一个代码生成器,它为继承和(单向和双向)关联提供了支持,并允许对持久性的类,进行简单、快速的可视化设计。

nHydrate ORM for Entity Framework

nHydrate是针对Microsoft实体框架的一种开源且成熟的ORM方案。值得注意的是,nHydrate并非实体框架的替代品,而是为它添加了一个建模层,以协助用户无缝地可视化和编写自定义的代码与扩展。

在开发企业级应用程序时,您可能需要修改或更新自己的底层数据库。此类更改虽然鲜少发生,但是您需要通过更新对象模型,以保证它与数据库中驻留的对象相同步。也就是说,任何在应用程序中出现的功能性更改,都能够触发数据库的变更。据此,您可以利用nHydrate进行建模,而不必担心遗漏对于底层数据库的相应更改。同时,您在使用nHydrate从数据库中生成模型时,它将自动创建数据库的更改脚本,以实现模型与数据库的同步。

您可以从Visual Studio市场的链接-- https://marketplace.visualstudio.com/items?itemName=nHydrateorg.nHydrateORMModeler,下载该工具的最新版本。此外,它在Github上的链接为--https://github.com/nHydrate/nHydrate

EF Core Power Tools

作为Visual Studio的一种扩展,EF Core Power Tools提供了实用的DbContext功能。而且这些功能已被添加到了VS Solution Explorer的上下文菜单中。因此,总的说来,EC Core Power Tools的显著功能包括:

i. 支持针对SQL Server、Azure SQL DB、PostgreSQL、MySQL、SQLite、Oracle和SQL Server Compact等数据库的反向工程。

ii. 支持各种迁移工具。

iii. 支持模型的绘图和脚本的编制。

您可以从Visual Studio市场的链接-- https://marketplace.visualstudio.com/items?itemName=ErikEJ.EFCorePowerTools,下载该工具。

CatFactory

作为一种内置了C#并兼容.NET Core的scaffolding引擎,CatFactory支持Entity Framework Core、Dapper和.NET Core。它可以从现有的SQL Server实例中导入整个数据库,以便scaffold(映射)某个目标技术。您可以从Github链接--https://github.com/hherzl/CatFactory,下载该工具。

下面我们来讨论一下时下流行的实体框架扩展。

Microsoft.EntityFrameworkCore.AutoHistory

作为实体框架核心的一个重要插件,您可以利用名为AutoHistory来自动记录数据的更改历史,并将这些更改存储到一个名为AutoHistories的数据库表中。当然值得注意的是,默认情况下此功能是被禁用的。因此,若想启用该功能,您需要在DbContext类中重写OnModelCreating方法,然后使用ModelBuilder实例,去调用EnableAutoHistory()的扩展方法。此外,还有另一种名为EnsureAutoHistory的扩展方法,可为特定的DbContext自动保留了历史记录。

您可以在软件包管理控制台中使用如下命令,来进行安装:

PM> Install-Package Microsoft.EntityFrameworkCore.AutoHistory 

它在Github上的链接为--https://github.com/Arch/AutoHistory。

EFCore.BulkExtensions

在开发以数据为中心的企业级应用程序时,您可能经常需要批量地执行CRUD(创建、检索、更新、删除)等相关操作,此时EFCore.BulkExtensions正好能派上用场。它是一种轻量级的扩展,可被用于在SQL Server和SQLite上进行批量的CRUD操作。

您可以在软件包管理控制台中使用如下命令,来进行安装:

PM> Install-Package EFCore.BulkExtensions 

它在Github上的链接为--https://github.com/borisdj/EFCore.BulkExtensions

Entity Framework Plus

作为一个免费的开源库,Entity Framework Plus可用于扩展Entity Framework 6和Entity Framework Core的各项功能。换句话说,它解决了实体框架的局限性,并为其添加了一些必备的功能。您可以利用该扩展库执行多项操作,其中包括:过滤,审核,缓存,查询,批量删除,以及批量更新等。

您可以从其官网链接--https://entityframework-plus.net/,下载该工具。

Microsoft.EntityFrameworkCore.UnitOfWork

该插件既支持存储库和工作单元的各种设计模式,又能够为多个数据库和分布式事务提供支持。

您可以在软件包管理控制台中使用如下命令,来进行安装:

PM> Install-Package Microsoft.EntityFrameworkCore.UnitOfWork 

它在Github上的链接为--https://github.com/Arch/UnitOfWork

EfCore.InMemoryHelpers

EfCore.InMemoryHelpers插件为实体框架核心的内存数据库提供程序(In-Memory Database Provider)准备了一个包装器。该提供程序可被用于处理内存中各种数据库。当然,在SQL Server 2014中也包含了对于内存数据库的支持。总的说来,EfCore.InMemoryHelpers插件的主要特征包括:

  • 开源。
  • 支持内存数据库。
  • 支持索引验证。

您可以在软件包管理控制台中使用如下命令,来进行安装:

PM> Install-Package EfCore.InMemoryHelpers 

它在Github上的链接为--https://github.com/FelixBoers/EfCore.InMemoryHelpers

EntityFrameworkCore.Cacheable

缓存,既是一项技术,也是一种更为精确的策略。它可以将稍旧的数据存储到内存中,以提高应用程序的性能。据此,所有后续的请求都可以在内存的高速缓存中,被检索到,而不必从文件系统、或数据库中里去检索数据。随着向(从)内存中读取(写入)数据的加快,整体性能也得到了提升。

EntityFrameworkCore.Cacheable是一种实体框架的高性能二级查询缓存扩展库。它支持对所有缓存类型的结果进行查询。

您可以在软件包管理控制台中使用如下命令,来进行安装:

PM> Install-Package EntityFrameworkCore.Cacheable 

它在Github上的链接为--https://github.com/SteffenMangold/EntityFrameworkCore.Cacheable。

总结

相关推荐