控制台应用可读取连接字符串,但注入DbContext时报错找不到'DefaultConnection'
控制台应用连接字符串配置错误排查
错误信息
A named connection string was used, but the name 'DefaultConnection' was not found in the application's configuration
Program.cs 代码
static async Task Main(string[] args) { var configuration = new ConfigurationBuilder() .SetBasePath(Directory.GetCurrentDirectory()) .AddJsonFile("appsettings.json", optional: false, reloadOnChange: true) .Build(); var sss = configuration.GetConnectionString("DefaultConnection"); Console.WriteLine(sss); var serviceProvider = new ServiceCollection() .AddLogging(configure => configure.AddSerilog()) .AddDbContext<MydbContext>(options => options.UseSqlServer(configuration.GetConnectionString("DefaultConnection")), ServiceLifetime.Transient) .AddScoped<IDataService, DataService>() .AddScoped<IMemoryCache, MemoryCache>() .AddScoped<IStockDataImportService, StockDataImportService>() .BuildServiceProvider(); IStockDataImportService importService = serviceProvider.GetRequiredService<IStockDataImportService>(); Console.WriteLine("Stock Data Import process started!"); await FetchFile(logger, importService, configuration); }
相关依赖类构造函数
StockDataImportService
public StockDataImportService(IDataService serv) { _serv = serv; }
DataService
public DataService(MydbContext context, IMemoryCache memoryCache) { _context = context; string? ddd = _context.Database.GetConnectionString(); _memoryCache = memoryCache; }
问题说明
已验证var sss可正确输出连接字符串,说明配置文件加载正常。但调用GetRequiredService<IStockDataImportService>()时触发上述错误,推测问题出在DataService获取DbContext的环节,请问哪里操作有误?
内容的提问来源于stack exchange,提问作者coolblue2000
相关产品推荐
相关产品推荐

