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

时间:2020-06-17 15:06:31

标签: c# .net entity-framework-migrations

其中包含带有EF Core的.NET Blazor应用程序正在运行。我已经阅读了其他错误,其中包括无法将类型为'System.Double'的对象转换为类型为'System.Single',但是我看不到它如何应用于数据的迁移功能。 / p>

当Migrations文件夹内没有任何迁移时,它运行良好。当我添加迁移时,它会在具有data.Database.Migrate();

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

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

正如上面的维克(Vikek)所说,我们在设置某些错误。问题是我们有一个DbContextFactory.cs,它被硬编码为使用SqlServer,而新的startup.cs使用的是UseMySql。基本上,我们进行了迁移,试图利用两种不同的SQL Server类型,这给了我们这个错误。

这是旧的DBContextFactory文件:

imagedata

替换为:

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);

    }

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