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



有一个带有EF Core的工作.NET Blazor应用程序。我已经阅读了其他错误,包括无法将类型为"System.Double"的对象转换为类型"System.Single">,但我看不出这如何适用于数据的迁移功能。

当迁移文件夹中没有迁移时,它运行良好。当我添加迁移时,它会在具有data.Database.Migrate();的行处中断

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

有什么建议吗?

正如Vikek上面提到的,我们设置错误了。问题是我们有一个DbContextFactory.cs它被硬编码为使用SqlServer,而新的初创公司.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 类型一起迁移。

相关内容

最新更新