【问题标题】:How should I add new migrations when the migrations are in another project using cli?当迁移在另一个项目中使用 cli 时,我应该如何添加新的迁移?
【发布时间】:2019-08-09 16:27:28
【问题描述】:

我有以下 3 个项目的解决方案:

-Project.Api(一个包含startup.cs和连接字符串的.net-core项目)

-Project.Service(包含迁移、DbContext 等的 .netstandard 项目)

-Project.Domain(包含实体的 .netstandard 项目)

我在尝试通过运行以下命令从 cli 添加新迁移时收到此错误:

cd Project.Api     
dotnet ef migrations add DoSth

您的目标项目“Project.Api”与您的迁移不匹配
程序集'Project.Service'。更改您的目标项目或
更改您的迁移程序集。更改您的迁移程序集 使用 DbContextOptionsBuilder。例如。 options.UseSqlServer(连接,b => b.MigrationsAssembly("Project.Api"))。默认情况下,迁移程序集是包含 DbContext 的程序集。改变 使用 Package 将您的目标项目迁移到迁移项目 Manager Console 的 Default project 下拉列表,或者通过执行 包含迁移项目的目录中的“dotnet ef”。

此外,我没有使用 Visual Studio,我必须使用 cli。

当我将 Startup.cs 中的迁移程序集更改为“Project.Api”时,该命令运行没有错误,但问题是迁移已添加到“Project.Api”下,我不想要这是因为我希望它们在“Project.Service”下。

我也尝试将目标程序集更改为“Project.Service”,但出现此错误:

启动项目“Project.Service.csproj”以框架为目标 '.NET 标准'。没有与此框架关联的运行时, 并且针对它的项目不能直接执行。要使用 带有此项目的 Entity Framework Core .NET 命令行工具,添加 面向 .NET Core 或 .NET Framework 的可执行项目 引用此项目,并将其设置为启动项目使用 --启动项目;或者,将此项目更新为跨目标 .NET Core 或 .NET Framework。有关使用 EF Core 工具的更多信息 对于 .NET Standard 项目,请参阅 https://go.microsoft.com/fwlink/?linkid=2034781

【问题讨论】:

    标签: .net-core entity-framework-core


    【解决方案1】:

    我所要做的就是将我的工作目录更改为包含迁移的目录,然后执行命令以添加迁移并指定我的启动项目。

    cd Project.Service
    
    dotnet ef migrations add Add_Admin --startup-project ../Project.Api/Project.Api.csproj
    

    【讨论】:

      猜你喜欢
      • 2020-03-19
      • 2015-07-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-02
      • 2018-03-09
      • 2015-11-06
      • 1970-01-01
      相关资源
      最近更新 更多