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

Mac下.NET Core 2.0:SQLite配置时如何用dotnet ef迁移SQL Server

如何在.NET Core 2.0(Mac)下用EF Core迁移到SQL Server

我来帮你一步步搞定这个问题——从SQLite切换到SQL Server并使用EF Core迁移其实很清晰,结合你的环境(Mac + .NET Core 2.0 + 开发模式下的StartupDevelopment类),按下面的步骤操作即可:

1. 安装EF Core SQL Server相关包和工具

首先确保你的项目引用了SQL Server的EF Core提供程序,同时安装全局的EF Core工具(注意指定2.0版本,和你的.NET Core版本匹配):

# 添加SQL Server EF Core包
dotnet add package Microsoft.EntityFrameworkCore.SqlServer --version 2.0.0

# 安装EF Core工具(全局)
dotnet tool install --global dotnet-ef --version 2.0.0

2. 配置SQL Server连接字符串

在appsettings.Development.json中添加SQL Server的连接串,替换掉原来的SQLite连接串(或者新增一个,不过建议直接替换开发环境的默认连接):

{
  "ConnectionStrings": {
    "DefaultConnection": "Server=localhost,1433;Database=MoviesLibrary;User Id=sa;Password=YourStrongPassword123!;TrustServerCertificate=True;"
  }
}

提示:Mac上通常用Docker运行SQL Server容器,所以地址一般是localhost,1433;如果用Azure SQL Database,直接替换成对应的连接串即可。

3. 修改StartupDevelopment中的DbContext配置

打开你的StartupDevelopment类,找到ConfigureServices方法,把原来的SQLite配置替换为SQL Server:

public void ConfigureServices(IServiceCollection services)
{
    // 替换原有的AddSqlite配置
    services.AddDbContext<YourDbContext>(options =>
        options.UseSqlServer(Configuration.GetConnectionString("DefaultConnection")));
    
    // 其他服务配置(比如MVC、依赖注入等)保持不变
}

注意:把YourDbContext替换成你实际的DbContext类名称

4. 生成SQL Server专属迁移文件

在终端中进入项目根目录,运行以下命令生成迁移文件(如果有多个DbContext,记得指定--context参数):

dotnet ef migrations add InitialSqlServerMigration --context YourDbContext

这个命令会在项目的Migrations目录下生成新的迁移文件,记录从SQLite schema到SQL Server schema的变化。

5. 应用迁移到SQL Server

最后执行迁移命令,将schema同步到SQL Server数据库:

dotnet ef database update --context YourDbContext

额外注意事项

  • 你的Program.cs中使用了UseStartup("MoviesLibfrary")(应该是笔误,建议改成MoviesLibrary),这是按程序集名称加载Startup类,.NET Core会自动根据ASPNETCORE_ENVIRONMENT环境变量(当前是Development)加载StartupDevelopment类,确保这个类在正确的程序集内即可。
  • 如果之前有针对SQLite的迁移,不需要删除,EF Core会根据当前DbContext的配置生成独立的SQL Server迁移,两者互不干扰。
  • 确保你的SQL Server实例处于运行状态,并且连接串中的用户名、密码、端口等信息正确,Mac上可以用telnet localhost 1433测试连接是否通畅。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.21 08:00:57