c# - 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,我们设置了一些错误。问题是我们有一个硬编码为使用 SqlServer 的 DbContextFactory.cs,而新的 startup.cs 使用的是 UseMySql。我们基本上有迁移试图利用两种不同的 sql server 类型,它给了我们这个错误。
这是旧的 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 类型一起迁移。
推荐阅读
- java - 动态改变 Akka Streams 的节流级别
- visual-studio - 选项卡上的 Visual Studio 文件名具有索引
- excel - Excel VBA在多列上比较2列表框
- symfony - Api-Platform 和 GraphQl - 如何从特殊操作中获取数据?
- asp.net-mvc - 有关如何将迁移与多个 Azure SQL 数据库、连接字符串和 Azure 应用服务发布配置文件一起使用的完整指南
- javascript - Vue.js/Vuex:我如何 v-bind 到一个状态值?
- javascript - JavaScript:从递归函数返回数组
- python - 二进制模式下 io.FileIO 和 open() 的区别
- ios - WebView 在第一次更改比例后自动放大
- java - 热图仅按价值加权,而不是浓度