我正在尝试在运行时添加DbContext
。我这样做的原因是因为客户端使用不同的数据库架构。这样一来,我无法将其添加到ConfigureServices
的{{1}}方法中,因为我需要首先了解客户端,然后尝试使用自StartUp
方法以来在其中创建具有适当模式的连接字符串。每次发出请求时都会调用。我尝试访问Configure
,但是容器显示尚未注册类型IServiceCollection
的服务。我现在尝试在启动的IServiceCollection
方法中注册IServiceCollection本身,然后应用程序拒绝完全启动。有没有更好的方法在运行时添加它?
ConfigureServices
客户端验证程序负责解析客户端连接字符串。
答案 0 :(得分:0)
好的,我通过添加QueryTrackingBehaviour.NoTracking
的{{1}}重载来解决了重新初始化的问题
AddDbContext
最重要的是,我没有在启动文件中这样做,而是通过覆盖services.AddDbContext<DatabaseContext>(options =>
{
options.UseQueryTrackingBehavior(QueryTrackingBehavior.NoTracking);
options.UseSqlServer(databaseSettings.DefaultConnection);
});
的{{1}}方法来初始化连接,但是在上述方法之前,我找到了一个更好的解决方案。解决方案如下
OnConfiguring