用于 ASP.NET Core 应用程序的 EF Code First 迁移替代方案

Posted

技术标签:

【中文标题】用于 ASP.NET Core 应用程序的 EF Code First 迁移替代方案【英文标题】:EF Code First migrations alternative for ASP.NET Core application 【发布时间】:2017-04-05 15:23:08 【问题描述】:

我有一个与 ASP.NET Core 的数据库迁移框架有关的问题。

所以我们有漂亮的实体框架,我们有代码优先迁移,在这种情况下,一切都对我们很好。 但是,我在我的应用程序中使用 Dapper ORM 而不是 EF,在这种情况下我不能使用 EF 迁移。所以我需要像flywaydb migrations 这样的东西,但是对于 ASP.NET Core 应用程序。

你知道一些可以帮助我的框架吗?

谢谢。

【问题讨论】:

【参考方案1】:

看起来有我的解决方案:

fluentmigrator

DbUp

但仍需要进一步研究此解决方案。

【讨论】:

嘿,也请查看我的项目 SharpMigrations :) github.com/sharpmigrations/sharpmigrations/tree/2.0【参考方案2】:

你说你根本没有使用 EF。为什么不使用 Visual Studio 数据库项目。如果您有现有的数据库,请将其导入数据库项目。此后,您在数据库项目中进行更改,然后通过模式比较和脚本工具将它们推送到您的实例。您的数据库项目可以存在于您的 VS 解决方案中。我是否正确理解了这个问题?

【讨论】:

还有一点是DB项目只支持Windows下 DB 项目和 dacpac 部署仅适用于 SQL Server,但您的 SQL Server 可以在 Linux 或 Azure 上。你是说 VB for mac 没有数据库项目?这不会是一个大惊喜,但我不认为很多人受到影响。也许我需要多出去走走?【参考方案3】:

你可以使用

Update-Database -Script 

在你的迁移命令上获取sql代码

【讨论】:

是的,但Update-Database -Script 据我所知,这是一个实体框架命令。但就我而言,我完全摆脱了 EF,所以我需要一些其他方法来应用数据库迁移。

以上是关于用于 ASP.NET Core 应用程序的 EF Code First 迁移替代方案的主要内容,如果未能解决你的问题,请参考以下文章

带有 EF Core 和 CosmosDB .NET 5 的 ASP.Net Core - IdentityRole 问题

.NET Core 1.0ASP.NET Core 1.0和EF Core 1.0简介

如何使用 EF Core 在 ASP.NET Core 中取消应用迁移

在 ASP.NET Core 中使用 DbContext 注入并行 EF Core 查询

面向具有 EF6 和 Identity 的完整框架的 ASP.NET Core

具有 ASP.NET Core 3.0 和 EF Core 的多租户应用程序