如何将Web API项目从EntityFramework.InMemory迁移到SQL Server
将InMemory数据库的ASP.NET Core Web API切换到SQL Server
你梳理的三个核心步骤是对的,下面把第三步的具体操作和后续细节说明白:
1. 移除InMemory包
打开NuGet包管理器,找到Microsoft.EntityFrameworkCore.InMemory并卸载它。
2. 添加SQL Server包
在NuGet包管理器中安装Microsoft.EntityFrameworkCore.SqlServer,也可以用命令行执行:
dotnet add package Microsoft.EntityFrameworkCore.SqlServer
3. 配置DbContext连接SQL Server
把你Program.cs里的这段代码:
builder.Services.AddDbContext<TodoContext>(opt => opt.UseInMemoryDatabase("TodoList"));
直接替换成:
// 从appsettings.json读取预先配置的连接字符串 var connectionString = builder.Configuration.GetConnectionString("TodoDatabase"); builder.Services.AddDbContext<TodoContext>(opt => opt.UseSqlServer(connectionString));
注意:把TodoDatabase换成你在appsettings.json里配置的连接字符串的键名,比如你的appsettings.json应该包含类似这样的配置:
{ "ConnectionStrings": { "TodoDatabase": "Server=你的SQL服务器地址;Database=目标数据库名;Trusted_Connection=True;TrustServerCertificate=True;" } }
后续适配方案
如果你用现成数据库
确保TodoContext中的实体类和数据库里的表结构完全匹配——包括表名、字段名、数据类型、主键约束等,有差异的话要调整实体类或者对应数据库结构。
如果你要通过迁移创建表
- 打开包管理器控制台,执行:
Add-Migration InitialCreate
这会生成创建表的迁移脚本。
2. 接着执行:
Update-Database
EF Core会自动连接你的数据库并创建对应的表。
内容的提问来源于stack exchange,提问作者sam sergiy klok
相关产品推荐
相关产品推荐

