Я написал этот вопрос , потому что я хотел выяснить, как создать DbContext, в котором вы знаете строку подключения только после того, как пользователь прошел аутентификацию (строка подключения - часть сведений о пользователе в базе данных каталога),Моя проблема заключалась в том, что я не могу установить это в службе запуска, так как мне нужно ждать, пока пользователь не войдет в систему.
I получил ответ , который предложил это:
var connection = @"Server=(localdb)\mssqllocaldb;Database=JobsLedgerDB;Trusted_Connection=True;ConnectRetryCount=0";
var optionsBuilder = new DbContextOptionsBuilder<BloggingContext>();
optionsBuilder.UseSqlServer(connection);
using (var context = new BloggingContext(optionsBuilder.Options))
{
// do stuff
}
Камило Теревинто прокомментировал это, сказав, что это действительно ужасное предложение:
Используя AddDbContext, EF Core использует фабрику для определения, когда создаются новые экземпляры
Я заметил, что эта опция (ответ) на самом деле есть в EF Docs в разделе "Аргумент конструктора".
Если она есть в документации и, кажется, единственный способ, которым я могу запустить createсоединение после того, как пользователь входит в систему, это нормально?Есть ли способ лучше?Есть ли вещи, о которых мне нужно знать и т. Д. Хотите знать, если кто-то может уточнить комментарии Камило.