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

EF Core Code First模式下指定数据库名称的方法求助

EF Core Code First 指定专属数据库的解决方案

核心解决思路

表创建在master数据库里,本质是连接字符串没有指定目标数据库,或者指向了master。只需要在连接字符串中明确配置专属数据库名称,再配合EF Core的初始化/迁移逻辑即可完成切换。


步骤1:修改连接字符串

找到你的配置文件(通常是appsettings.json),修改SqlConnectionString,添加Database参数指定你的专属数据库名:

"ConnectionStrings": {
  "SqlConnectionString": "Server=你的SQL服务器地址;Database=YourProjectDB;Trusted_Connection=True;TrustServerCertificate=True;"
}
  • 替换YourProjectDB为你想要的数据库名称
  • 如果该数据库不存在,EF Core会在后续操作中自动创建(前提是连接SQL Server的账号拥有创建数据库的权限)

步骤2:初始化数据库(二选一)

方式一:直接创建数据库(适合简单场景)

在程序启动逻辑(比如Program.cs)中添加代码,确保程序启动时自动创建数据库:

var app = builder.Build();

// 初始化数据库
using (var scope = app.Services.CreateScope())
{
    var dbContext = scope.ServiceProvider.GetRequiredService<SADbContext>();
    // 若数据库不存在则创建,直接生成表结构(不生成迁移文件)
    dbContext.Database.EnsureCreated();
}

// 其他中间件配置...
app.Run();

方式二:使用迁移创建(推荐,支持后续结构变更)

如果需要对数据库结构做版本控制,推荐使用EF Core迁移:

  1. 打开包管理器控制台(或终端),执行命令生成初始迁移:
    Add-Migration InitialCreate
    
  2. 执行迁移创建数据库并生成表:
    Update-Database
    

注意事项

  • 如果之前的迁移是基于master数据库生成的,建议删除旧的迁移文件,重新执行Add-Migration,避免残留配置导致异常
  • 确保连接SQL Server的账号拥有创建数据库的权限,否则会抛出权限不足的异常

内容的提问来源于stack exchange,提问作者chwunder

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 20:17:14