У меня есть мультитенантное приложение Web API. net core 3.1, которое обращается к базам данных с одним арендатором. Таким образом, каждый запрос действует на любую из баз данных n . У меня EF Core DbContext настроен так, что он разрешает строку подключения из заявки в запросе http, но я не знаю правильного подхода к созданию аналогичной настройки для MSSqlSink Serilog. Вот сокращенная настройка DbContext, чтобы дать вам представление о том, что я пытаюсь выполнить sh:
services.AddDbContext<MyContext>((serviceProvider, options) =>
{
// IHttpContextAccessor enables us to get at the claims
var httpContext = serviceProvider.GetRequiredService<IHttpContextAccessor>().HttpContext;
var httpRequest = httpContext.Request;
var claim = httpContext.User.Claims.FirstOrDefault(x => x.Type == "MyClaim");
var customerIdentifier = claim.Value;
var connectionString = GetConnectionString(customerIdentifier);
options.UseSqlServer(connectionString);
});
До сих пор я только смог найти примеры для настройки MSSqlSink Serilog с известная единственная строка соединения через appsettings или переменные окружения.