C# .NET EF 迁移无法将类型 'System.Double' 的对象转换为类型 'System.Single'

C# .NET EF Migrations Unable to cast object of type 'System.Double' to type 'System.Single'

有一个运行正常的 .NET Blazor 应用程序,其中包含 EF Core。我读过其他错误,包括 Unable to cast object of type 'System.Double' to type 'System.Single' 但我不明白这如何适用于迁移功能数据。

当迁移文件夹中没有迁移时,它运行正常。当我添加迁移时,它在 data.Database.Migrate();

的行中断
public void Configure(IApplicationBuilder app, IWebHostEnvironment env, AppDbContext data )
    {
        data.Database.Migrate();
    }

有什么建议吗?

正如 Vikek 上面提到的,我们设置了一些错误。问题是我们有一个硬编码为使用 SqlServer 的 DbContextFactory.cs,而新的 startup.cs 使用的是 UseMySql。我们基本上让迁移尝试利用两种不同的 sql 服务器类型,但它给了我们这个错误。

这是旧的 DBContextFactory 文件:

public AppDbContext CreateDbContext(string[] args)
    {
        var optionsBuilder = new DbContextOptionsBuilder<AppDbContext>();
        optionsBuilder.SqlServer(@"server=mssqlserver;userid=bigboy;pwd=thesecretpasswordformssql;database=devdb;AllowPublicKeyRetrieval=True;");
        return new AppDbContext(optionsBuilder.Options);

    }

替换为:

public AppDbContext CreateDbContext(string[] args)
    {
        var optionsBuilder = new DbContextOptionsBuilder<AppDbContext>();
        optionsBuilder.UseMySql(@"server=mysql;userid=root;pwd=thesecretpassword;port=3306;database=devdb;sslmode=none;AllowPublicKeyRetrieval=True;");
        return new AppDbContext(optionsBuilder.Options);

    }

启动文件查看的是正确的 mysql 字符串,但 DBContextFactory.cs 导致了错误,因为它无法将 mysql 和 mssql 类型一起迁移.