在ASP.NET Core MVC中用SQLite运行dotnet ef找不到Local Database Runtime怎么办
错误原因
该报错与代理设置完全无关,属于开发环境配置不匹配问题:微软官方ASP.NET Core MVC教程的默认模板预设使用SQL Server LocalDB作为数据库,而LocalDB是完整版Visual Studio的可选预装组件,你使用VS Code作为开发工具,默认没有安装该组件,因此触发找不到LocalDB运行时的报错。你没有遗漏教程步骤,只是教程默认配置针对的是Visual Studio用户,使用VS Code需要手动调整数据库配置。
解决方法
推荐优先选择适配你当前已安装SQLite扩展的方案,无需额外安装大型组件。
方案1:切换为SQLite数据库(推荐)
- 打开项目根目录的终端,执行命令安装依赖包:
dotnet add package Microsoft.EntityFrameworkCore.Sqlite dotnet add package Microsoft.EntityFrameworkCore.Design
- 打开项目根目录的
appsettings.json文件,修改连接字符串配置,将原有DefaultConnection节点替换为:
"ConnectionStrings": { "DefaultConnection": "Data Source=MvcMovie.db" }
- 打开
Program.cs文件,找到原有注册SQL Server数据库的代码,格式类似:
builder.Services.AddDbContext<MvcMovieContext>(options => options.UseSqlServer(builder.Configuration.GetConnectionString("DefaultConnection")));
将其修改为SQLite的注册代码:
builder.Services.AddDbContext<MvcMovieContext>(options => options.UseSqlite(builder.Configuration.GetConnectionString("DefaultConnection")));
注:上述代码中的MvcMovieContext为教程中定义的上下文类名,如果你自定义了类名请替换为自己的类名
- 删除项目目录下
Migrations文件夹中的所有原有迁移文件 - 终端执行命令重新生成迁移:
dotnet ef migrations add InitialCreate - 执行数据库更新命令即可正常运行:
dotnet ef database update
方案2:安装SQL Server LocalDB(仅适合需要使用SQL Server的场景)
直接下载SQL Server Express安装包,安装过程中勾选LocalDB组件,安装完成后重启终端重新执行dotnet ef database update即可。
内容的提问来源于stack exchange,提问作者Joshua
相关产品推荐
相关产品推荐

