我有一个EF Core应用程序,在UseSqlServer
选项中工作良好,我正在从appsettings.json
中称为MyDbConnectionString
的属性读取连接字符串。
当我在父属性AppInsights
下引入ConnectionString
时,问题就开始了。DbContext
现在看到这个新的ConnectionString
,并且抛出连接字符串格式不正确的错误。我不希望DbContext
担心appsettings.json
,并希望它继续使用我提供的连接字符串。
我怎么能让EF core不为appsettings.json
操心呢?
代码:
var configurationFile = new ConfigurationBuilder().AddJsonFile("appSettings.json");
_config = configurationFile.Build();
string ihcSqlDatabaseConnectionString = _config.GetSection("Settings")["IhcSqlDatabaseConnectionString"];
string DatabaseConnectionString = string.Concat(ihcSqlDatabaseConnectionString, ";persist security info = True;MultipleActiveResultSets=True;App=EntityFramework;");
IServiceCollection serviceCollection = new ServiceCollection();
serviceCollection.AddServices();
serviceCollection.AddDbContext<ProxyServiceDbContext>(options => options.UseSqlServer(DatabaseConnectionString));
EF core将使用您在注入dbcontext服务时设置的连接字符串。
我猜你使用错误的AppInsights
连接字符串,请确保它是正确的。
例如。你可以定义一个像AppInsights这样的属性,它包含正确的连接字符串,然后在dbcontext中使用它。
更多细节,可以参考下面的代码:
var AppInsights ="Server=(localdb)\mssqllocaldb;Database=xxxxxx;Trusted_Connection=True;MultipleActiveResultSets=true";
builder.Services.AddDbContext<ApplicationDbContext>(options =>
options.UseSqlServer(AppInsights));
实际上,DB上下文正在评估其日志记录器,这是应用程序的见解。我的appsettings。Json中应用设置的值无效。Json,这是异常的原因。db连接字符串被正确使用,没有从appinsights连接字符串中获取。