簡體   English   中英

如何在通過 PMC for mysql 添加 ef 核心遷移時修復錯誤?

[英]How to fix error when adding an ef core migration through the PMC for mysql?

我想從使用 SQL Server 切換到 MySql。 我已經為 SQL Server 創建了遷移並將它們應用於數據庫。 我已經添加了 Pomelo Mysql 包,現在想要為 MySql 數據庫創建遷移。 我的問題是我在嘗試使用 add-migration 命令時在包管理器控制台中收到錯誤。

  • 這是一個 .Net Core 2.2 項目
  • Pomelo.EntityFrameworkCore.MySql 2.2.0 已添加到項目中

啟動/配置服務

services.AddDbContext<ApplicationDbContext>(options => options.UseMySql(Configuration.GetConnectionString("DefaultConnection"), 
                mySqlOptions => { mySqlOptions.ServerVersion(new Version(8, 0, 16), ServerType.MySql); }));

項目

  <PropertyGroup>
    <TargetFramework>netcoreapp2.2</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.2.4" />
    <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="2.2.4" PrivateAssets="All" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.2.3" PrivateAssets="All" />
    <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="2.2.0" />
  </ItemGroup>

ApplicationDbContext 類

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.UseMySql("Server=localhost;Database=myDbUid=myUserId;");
}

嘗試添加遷移時收到以下錯誤。 “已添加具有相同密鑰的項目。密鑰:Pomelo.EntityFrameworkCore.MySql.Infrastructure.Internal.MySqlOptionsExtension” 此錯誤與我之前為 MS SQL Server 進行過遷移有關嗎? 任何幫助將非常感激。

我遇到了同樣的問題。 對我來說,答案是從我的 Context 類中刪除OnConfiguring()方法。

我有兩個項目 - 一個包含數據庫代碼和遷移,另一個是用於查看數據的 ASP.NET Core Web 項目。

我的 Web 項目的 Startup.cs 中有以下內容:

public void ConfigureServices(IServiceCollection services)
{
    services.AddRazorPages();
    services.AddDbContext<EFCoreExampleContext>(o => o.UseMySql("server=etc..."));
}

在我的數據庫項目中,我在 DbContext 派生類中有這個:

protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
    optionsBuilder.UseMySql("server=etc...");
}

即使我使用的是Update-Database -Project MyDbProj ,它也使用了另一個項目中的連接字符串。 如果我從 Startup.cs 中刪除AddDbContext行,我只會收到一個不同的錯誤。 刪除OnConfiguring方法是讓它工作的唯一方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM