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

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

【.com快译】实体框架(Entity Framework)是Microsoft提供的一种对象关系映射(Object Relational Mapper,ORM)型工具。实体作为目前十分流行的框架ORM工具,实体框架能够让开发人员通过对概念模型(而不是心工关系模型)进行编程,来创建以数据为中心的具扩应用程序。据此,顶级的核用户可以解决数据在应用程序中的实体表示方式、和实际存储在数据库中的框架方式,这两者之间的心工不匹配问题。

本文将按照如下列表顺序,具扩和您一起讨论那些顶级的顶级的核实体框架,以及实体框架核心(Entity Framework Core)的实体工具与扩展:-

工具类

Devart Entity Developer Entity Framework Visual Editor nHydrate ORM for Entity Framework EF Core Power Tools CatFactory

扩展类

Microsoft.EntityFrameworkCore.AutoHistory EFCore.BulkExtensions Entity Framework Plus Microsoft.EntityFrameworkCore.UnitOfWork EfCore.InMemoryHelpers EntityFrameworkCore.Cacheable

下面我们先来讨论一下时下流行的实体框架工具。

Devart Entity Developer

由Devart推出的框架Entity Developer是一个非常强大的建模和代码生成工具。它属于ORM工具范畴。心工Entity developer使您可以一目了然地可视化设计数据的具扩访问层。由于Devart生成的数据访问层包含了各种自动生成的亿华云计算代码,因此其出错的可能性非常小。

Entity Developer在其官方网站上指出:“Entity Developer可以在一个统一的界面中帮助您设计各种.NET ORM模型。您可以通过购买单独的版本,以获得对所有ORM的支持。”

该方案允许使用“模型优先”和“数据库优先”的方法,来设计各种模型,并生成C#或Visual Basic .NET的相关代码。它支持创建各种映射关系。例如:表的拆分,将实体映射到多个表中,各种复杂的类型,层次化继承结构,用SELECT语句创建实体,以及从SQL代码创建方法等。

除了独立的可视化ORM设计器和Visual Studio加载项之外,Entity Developer还提供了一个控制台应用程序。它可以实现:从数据库生成模型,从模型生成代码,通过命令行从模型脚本创建和更新数据库。该工具的下载地址为--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。

总结

在上文中,我们讨论了实体框架和实体框架核心的各种顶级工具和扩展。您可以根据实际应用程序的需求,从中做出正确的选择。

原标题:Top Entity Framework Core Tools and Extensions ,作者:Joydip Kanjilal

【译稿,合作站点转载请注明原文译者和出处为.com】

人工智能
上一篇:英伟达发布H200!巩固AI芯片霸主地位
下一篇:2022ODCC峰会上,华为为数据中心持续进化提供了哪些解题思路