当前位置: 首页 > 科技观察

TopEntityFrameworkCoreToolsandExtensions_0

时间:2023-03-12 03:10:03 科技观察

TopEntityFrameworkCoreToolsandExtensions"title="TopEntityFrameworkCoreToolsandExtensions">【.com速译】实体框架(EntityFramework)是一个对象关系映射(ObjectRelationalMapper,ORM)工具。作为一种非常流行的ORM工具,EntityFramework使开发人员能够通过编程概念模型而不是关系模型来创建以数据为中心的应用程序,用户可以根据此解决数据在应用程序中表示方式的不匹配问题以及它在数据库中实际存储的方式,本文将按照以下列表顺序和大家讨论Framework中的顶级实体,以及EntityFrameworkCore的工具和扩展:-ToolsDevartEntityDeveloperEntityFrameworkVisualEditornHydrate用于实体框架的ORMEFCorePowerToolsCatFactoryExtensionsMicrosoft.EntityFrameworkCore.AutoHistoryEFCore.BulkExtensionsEntityFrameworkPlusMicrosoft.EntityFrameworkCore.UnitOfWorkEfCore.InMemoryHelpersEntityFrameworkCore.Cacheable让我们首先讨论流行的实体框架工具。DevartEntityDeveloperDevart推出的EntityDeveloper是一个非常强大的建模和代码生成工具。属于ORM工具类。EntityDeveloper让您一目了然地可视化设计数据的访问层。由于Devart生成的数据访问层包含各种自动生成的代码,出错的可能性很小。EntityDeveloper在其官方网站上指出:“EntityDeveloper可以帮助您在一个统一的界面中设计各种.NETORM模型。您可以通过购买单独的版本来获得对所有ORM的支持。》这个解决方案允许使用“模型优先”和“数据库优先”的方法来设计各种模型并生成C#或VisualBasic.NET相关代码。它支持创建各种映射关系。例如:表拆分,将实体映射到多表、各种复杂类型、层级继承结构、用SELECT语句创建实体、从SQL代码创建方法等。除了独立的可视化ORM设计器和VisualStudio插件外,EntityDeveloper还提供了一个控制台应用程序。可以实现:从数据库生成模型,从模型生成代码,通过命令行从模型脚本创建和更新数据库,这个工具的下载地址是--https://www.devart.com/entitydeveloper/EntityFrameworkVisualEditorEntityFrameworkVisualEditor不仅支持EntityFrameworkCore、EntityFramework6及更高版本,还可以作为VisualStudio2019的扩展。您可以从VisualStudio链接市场——https://marketplace.visualstudio.com/items?itemName=michaelsawczyn.EFDesigner,下载该工具。作为一个代码生成器,它提供了对继承和(单向和双向)关联的支持,并允许简单、快速的可视化设计。nHydrateORMforEntityFrameworknHydrate是一个开源且成熟的MicrosoftEntityFrameworkORM解决方案。值得注意的是,nHydrate并不是EntityFramework的替代品,而是为其添加了一个建模层,以协助用户无缝可视化和编写自定义代码和扩展。在开发企业应用程序时,您可能需要修改或更新您的底层数据库。此类更改很少见,但您需要通过更新对象模型,以使其与驻留在数据库中的对象保持同步。也就是说,应用程序中发生的任何功能更改都可以触发对数据库的更改。因此,您可以使用nHydrate进行建模,而不必担心对基础数据库的相应更改被省略。同时,当你使用nHydrate从数据库生成模型时,它会自动创建一个数据库更改脚本来同步模型和数据库。您可以从VisualStudioMarketplace中的链接下载该工具的最新版本--https://marketplace.visualstudio.com/items?itemName=nHydrateorg.nHydrateORMModeler。此外,它在Github上的链接是——https://github.com/nHydrate/nHydrateEFCorePowerTools作为VisualStudio的扩展,EFCorePowerTools提供了有用的DbContext函数。并且这些功能已经添加到VS解决方案资源管理器的上下文菜单中。因此,总而言之,ECCorePowerTools的显着特点包括:i.支持SQLServer、AzureSQLDB、PostgreSQL、MySQL、SQLite、Oracle和SQLServerCompact等数据库的逆向工程。二.支持各种迁移工具。三.支持模型绘图和脚本编写。您可以从VisualStudioMarketplace中的链接下载该工具--https://marketplace.visualstudio.com/items?itemName=ErikEJ.EFCorePowerTools。CatFactory作为一个内置C#并兼容.NETCore的脚手架引擎,支持EntityFrameworkCore、Dapper和.NETCore。它可以从现有的SQLServer实例导入整个数据库,以构建(映射)目标技术。您可以从Github链接下载该工具-https://github.com/hherzl/CatFactory。让我们在下面讨论流行的实体框架扩展。Microsoft.EntityFrameworkCore.AutoHistory是实体框架核心的重要插件。您可以使用名称AutoHistory来自动记录数据更改的历史并将这些更改存储在名为AutoHistories的数据库表中。当然值得注意的是,默认情况下此功能是禁用的。因此,如果要启用该功能,需要重写DbContext类中的OnModelCreating方法,然后使用ModelBuilder实例调用EnableAutoHistory()的扩展方法。此外,还有另一种名为EnsureAutoHistory的扩展方法,它会自动保留特定DbContext的历史记录。您可以在包管理控制台中使用以下命令进行安装:PM>Install-PackageMicrosoft.EntityFrameworkCore.AutoHistory它在Github上的链接是--https://github.com/Arch/AutoHistory。EFCore.BulkExtensions在开发以数据为中心的企业级应用程序时,可能经常需要批量进行CRUD(创建、检索、更新、删除)等相关操作,此时EFCore.BulkExtensions就可以派上用场。它是一个轻量级扩展,可用于SQLServer和SQLite上的批处理CRUD操作。您可以在包管理控制台中使用以下命令进行安装:PM>Install-PackageEFCore.BulkExtensions它在Github上的链接是--https://github.com/borisdj/EFCore.BulkExtensions。EntityFrameworkPlus是一个免费的开源库,EntityFrameworkPlus可以用来扩展EntityFramework6和EntityFrameworkCore的功能。换句话说,它解决了EntityFramework的局限性并为其添加了一些必备功能。您可以使用此扩展库执行许多操作,包括:过滤、审计、缓存、查询、批量删除和批量更新。您可以从其官方网站链接-https://entityframework-plus.net/下载该工具。Microsoft.EntityFrameworkCore.UnitOfWork这个插件不仅支持存储库和工作单元的各种设计模式,还提供了对多数据库和分布式事务的支持。您可以在包管理控制台中使用以下命令进行安装:PM>Install-PackageMicrosoft.EntityFrameworkCore.UnitOfWork它在Github上的链接是--https://github.com/Arch/UnitOfWork。EfCore.InMemoryHelpersEfCore.InMemoryHelpers插件为EntityFrameworkCoreIn-MemoryDatabaseProvider准备了一个包装器。该提供程序可用于处理内存中的各种数据库。当然,SQLServer2014还包括对内存数据库的支持。一般来说,EfCore.InMemoryHelpers插件的主要特性包括:开源。支持内存数据库。支持索引验证。您可以在包管理控制台中使用以下命令进行安装:PM>Install-PackageEfCore.InMemoryHelpers。它在Github上的链接是--https://github.com/FelixBoers/EfCore.InMemoryHelpers。EntityFrameworkCore.Cacheable缓存既是一种技术,也是一种更精准的策略。它可以将稍旧的数据存储到内存中以提高应用程序性能。因此,可以在内存缓存中检索所有后续请求,而不必从文件系统或数据库中检索数据。随着更快地向(从)内存读取(写入)数据,整体性能也得到了提高。EntityFrameworkCore.Cacheable是EntityFramework的高性能二级查询缓存扩展库。它支持查询所有缓存类型的结果。可以在包管理控制台使用如下命令安装:PM>Install-PackageEntityFrameworkCore.CacheableGithub上的链接是--https://github.com/SteffenMangold/EntityFrameworkCore.Cacheable。总结以上,我们讨论了EntityFramework和EntityFrameworkCore的各种顶级工具和扩展。您可以根据实际应用的需要从中做出正确的选择。原标题:TopEntityFrameworkCoreToolsandExtensions,作者:JoydipKanjilal