ASP.NET 6+Identity+Sqlite环境下如何配置services.AddDbContext
解决方案
1. 修正依赖包安装
你当前安装的Microsoft.EntityFrameworkCore.Sqlite.Core是SQLite EF Core驱动的核心运行库,不包含UseSqlite等配置扩展方法,你需要替换安装完整的NuGet包:
- 卸载
Microsoft.EntityFrameworkCore.Sqlite.Core - 安装
Microsoft.EntityFrameworkCore.Sqlite
如果你后续需要适配SQL Server,额外安装Microsoft.EntityFrameworkCore.SqlServer即可获得UseSqlServer扩展方法。
2. 补充命名空间引用
在Program.cs头部添加EF Core的命名空间引用:
using Microsoft.EntityFrameworkCore;
3. 配置连接字符串
在项目根目录的appsettings.json中添加SQLite连接字符串配置:
{ "ConnectionStrings": { "SqliteConn": "Data Source=./auth_demo.db" }, // 其他原有配置保持不变 }
4. 完成DbContext注入配置
修改Program.cs中的DbContext注入代码即可:
builder.Services.AddDbContext<ApplicationDbContext>(options => options.UseSqlite(builder.Configuration.GetConnectionString("SqliteConn")));
补充说明
.NET 6+ 引入的顶级语句Program.cs确实完全替代了之前版本的Startup.cs功能,服务注册全部在builder.Build()之前、通过builder.Services配置即可,中间件配置在builder.Build()之后、通过app变量配置,和之前Startup的ConfigureServices、Configure方法逻辑完全对应。
内容的提问来源于stack exchange,提问作者Damn Vegetables
相关产品推荐
相关产品推荐

