执行Add-Migration Initial时出错,寻求Code First数据库创建解决办法
排查EF Core Code First
Add-Migration报错问题 你的BankDBContext代码:
using BankLibrary.Models; using Microsoft.EntityFrameworkCore; public class BankDBContext : DbContext { public BankDBContext() { } public BankDBContext(DbContextOptions<BankDBContext> options) : base(options) { } public DbSet<AccountHolderDetails> AccountDetails { get; set; } public DbSet<TransactionDetails> TransactionDetails { get; set; } public DbSet<LoanDetails> LoanDetails { get; set; } protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { optionsBuilder.UseSqlServer("data source=(localdb)\\MSSQLLocalDB; database=BankDB; integrated security=true"); } }
排查步骤:
- 修正连接字符串转义:代码中
(localdb)\MSSQLLocalDB的反斜杠未转义,C#字符串里单个反斜杠是转义字符,会导致连接字符串解析失败,必须改为(localdb)\\MSSQLLocalDB(如上面代码所示),这是触发该错误的常见原因。 - 确保EF包版本一致:检查
Microsoft.EntityFrameworkCore.Tools和Microsoft.EntityFrameworkCore.SqlServer的NuGet包版本完全匹配,版本不兼容会导致工具无法正常识别Context类。 - 指定正确的项目:如果
BankDBContext位于类库项目,在Package Manager Console中确保默认项目选中该类库,或者执行命令时明确指定项目:Add-Migration Initial -Project 你的类库项目名称。 - 清理迁移缓存:删除项目下的
Migrations文件夹(若存在),执行Clean Solution和Rebuild Solution,再重新尝试生成迁移。 - 检查LocalDB状态:打开命令提示符,执行
sqllocaldb info确认MSSQLLocalDB实例存在;若不存在,执行sqllocaldb create MSSQLLocalDB创建实例,再用sqllocaldb start MSSQLLocalDB启动。 - 注册Context到依赖注入(ASP.NET Core项目):如果是Web项目,在
Program.cs中添加Context注册,确保EF工具能正确识别配置:builder.Services.AddDbContext<BankDBContext>(options => options.UseSqlServer("data source=(localdb)\\MSSQLLocalDB; database=BankDB; integrated security=true"));
内容的提问来源于stack exchange,提问作者RAHUL GIRI
相关产品推荐
相关产品推荐

