在不使用其他项目的情况下添加实体框架核心迁移

Posted

技术标签:

【中文标题】在不使用其他项目的情况下添加实体框架核心迁移【英文标题】:Adding Entity Framework core migration without using other projects 【发布时间】:2021-09-11 09:00:44 【问题描述】:

当我使用 Entity Framework Core 创建 ORM 模型项目时,我遇到了迁移问题。我通常从数据层开始我的项目,然后生成我的数据模型。之后,我独立添加迁移(来自其他项目)。如何仅使用命令添加第一次迁移,而不在其他项目上配置迁移或使其成为可执行项目(如控制台)?

【问题讨论】:

【参考方案1】:

我认为这是一个启动项目的要求

【讨论】:

一般来说,确实如此。但我想做一个库项目,我不想将库转换为控制台。【参考方案2】:

我不确定您要做什么,但这里是用于创建迁移和数据库的 DotNET EF Core 命令。

命令

第一个命令是安装 EF Core 迁移工具。

dotnet tool install --global dotnet-ef --version 3.1.0

第二条命令可用于创建迁移。

dotnet-ef migrations add First --project YourProject

第三个在 SQL Server 中创建数据库。数据库将在 appsettings.json 中的连接字符串中指定的 SQL 服务器实例中创建。

dotnet-ef database update --project YourProject

使用单独的迁移项目

您可能希望将迁移存储在与包含 DbContext 的项目不同的项目中。然后遵循这些 MS Docs 指南。

https://docs.microsoft.com/en-us/ef/core/managing-schemas/migrations/projects?tabs=dotnet-core-cli

【讨论】:

其实我不想这样,因为它需要一个我想避免的启动项目。 我想独立于其他项目添加迁移,我不想让我的项目可执行。 您想在单独的项目中进行迁移吗? 如果你想运行迁移。 Ef core需要dbContext和一些启动服务注入到启动类中。否则,我认为这是不可能的。 我没有找到解决方案。

以上是关于在不使用其他项目的情况下添加实体框架核心迁移的主要内容,如果未能解决你的问题,请参考以下文章

在没有事务的情况下运行 EF 核心迁移?

在不获取现有对象的情况下创建核心数据关系

无法在实体框架中生成显式迁移

核心数据迁移是不是必要?

如何在不清除数据库的情况下重新加载 Roo 项目?

在生产中使用实体框架(代码优先)迁移