You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 05:06:05