WinForms中Code First创建MSSQL数据库:连接字符串与迁移更新疑问
EF Core Code First:连接字符串配置与数据库迁移步骤
一、配置MSSQL连接字符串
根据项目类型,有两种常见配置方式:
1. ASP.NET Core 项目
在appsettings.json中添加连接字符串节点:
{ "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=YourDatabaseName;Trusted_Connection=True;MultipleActiveResultSets=true" } }
替换YourDatabaseName为你想要的数据库名称。
接着在Program.cs(.NET 6+)中注册ApplicationDbContext时指定连接字符串:
builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
如果是.NET 5及更早版本的Startup.cs,在ConfigureServices方法中添加:
services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
2. 控制台/桌面项目
推荐通过配置文件管理,先安装Microsoft.Extensions.Configuration.Json NuGet包,然后添加appsettings.json并设置其“复制到输出目录”为“如果较新则复制”:
{ "ConnectionStrings": { "DefaultConnection": "Server=(localdb)\\mssqllocaldb;Database=YourDatabaseName;Trusted_Connection=True;MultipleActiveResultSets=true" } }
然后在ApplicationDbContext的OnConfiguring方法中读取配置:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder) { if (!optionsBuilder.IsConfigured) { var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json") .Build(); optionsBuilder.UseSqlServer(configuration.GetConnectionString("DefaultConnection")); } }
测试场景下也可以直接硬编码连接字符串到OnConfiguring(不推荐生产环境使用)。
二、创建迁移并更新数据库
1. 安装依赖包
确保已安装以下EF Core相关NuGet包:
Microsoft.EntityFrameworkCore.SqlServerMicrosoft.EntityFrameworkCore.Tools
可以通过Package Manager Console安装:
Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFrameworkCore.Tools
或者使用.NET CLI:
dotnet add package Microsoft.EntityFrameworkCore.SqlServer dotnet add package Microsoft.EntityFrameworkCore.Tools
2. 生成初始迁移
打开Package Manager Console,执行:
Add-Migration InitialCreate
或者用.NET CLI:
dotnet ef migrations add InitialCreate
此命令会在项目中生成迁移文件,记录模型到数据库结构的映射规则。
3. 应用迁移创建/更新数据库
在Package Manager Console中运行:
Update-Database
或者.NET CLI:
dotnet ef database update
该命令会自动创建目标数据库(如果不存在),并将所有未执行的迁移应用到数据库中。
内容的提问来源于stack exchange,提问作者JustSoni
相关产品推荐
相关产品推荐

