Blazor Server应用中Configuration未找到问题求助
Blazor Server中Configuration未找到问题的解决方案
问题描述
在Blazor Server应用中添加DbContext时编写以下代码:
services.AddDbContext<AppDBContext>(item => item.UseSqlServer(Configuration.GetConnectionString("myconn")));
编译器提示Configuration未找到,即使已经添加了using Microsoft.Extensions.Configuration;,且IDE自动提示需要安装Fluent Assertions。
解决步骤
- 忽略Fluent Assertions的提示:Fluent Assertions是单元测试用的断言库,和当前DbContext配置问题完全无关,无需安装。
- 修正Configuration的访问方式:
- 如果代码写在.NET 6+的
Program.cs顶级语句中,必须使用builder.Configuration而非直接写Configuration——模板中默认的配置实例是通过WebApplicationBuilder的builder对象暴露的,修正后的代码:builder.Services.AddDbContext<AppDBContext>(item => item.UseSqlServer(builder.Configuration.GetConnectionString("myconn"))); - 如果代码写在自定义服务扩展类中,需要通过方法参数传入
IConfiguration实例,示例:
随后在public static class ServiceExtensions { public static void AddAppDbContext(this IServiceCollection services, IConfiguration configuration) { services.AddDbContext<AppDBContext>(item => item.UseSqlServer(configuration.GetConnectionString("myconn"))); } }Program.cs中调用:builder.Services.AddAppDbContext(builder.Configuration);
- 如果代码写在.NET 6+的
- 确认必要包已安装:确保项目已安装
Microsoft.EntityFrameworkCore.SqlServer包(SQL Server的EF Core提供程序),.NET 6+模板默认已包含Microsoft.Extensions.Configuration相关依赖,无需额外安装。
内容的提问来源于stack exchange,提问作者Muhammad Faizan Khan
相关产品推荐
相关产品推荐

