Отслеживание Ef Core DbContext по нескольким HTTP-запросамC#

Место общения программистов C#
Anonymous
Отслеживание Ef Core DbContext по нескольким HTTP-запросам

Сообщение Anonymous »

У меня есть собственная простая платформа для маршрутизации/контроллеров на C# и .NET Core. Я использую EF Core для ORM. В Startup.cs я настраиваю так:

Код: Выделить всё

    public void ConfigureServices(IServiceCollection services)
{
services.AddDbContext(options =>
{

options.EnableSensitiveDataLogging();
options.UseSqlServer(System.Environment.GetEnvironmentVariable("SQL_SERVER_CONNECTION"));
});
}
Я использую внедрение зависимостей, чтобы получить экземпляр моего DbContext. В действиях моего контроллера я делаю следующее:

Действие 1:
  • Не использовать AsNoTracking() в моих запросах
  • Вносить изменения в экземпляр модели
  • Не сохранять изменения
Действие 2 (другой HTTP request):
  • Сделайте буквально что угодно
  • Запустите SaveChangesAsync() в DbContext
Изменения, внесенные в Действие 1, сохранятся. Если я разорвал какие-либо отношения в Действии 1, я получу сообщение об ошибке.

Я знаю, что по умолчанию DbContext ограничен. Нужно ли мне реализовывать какой-то собственный код области видимости, чтобы гарантировать получение нового экземпляра с каждым HTTP-запросом?

ПРИМЕЧАНИЕ. Я НЕ использую MVC, я использую свою собственную небольшую библиотеку, которую разрабатываю. Я только что узнал, что MVC, вероятно, использует IServiceScopeFactory для создания областей. Однако я не уверен, как использовать его в промежуточном программном обеспечении.

Подробнее здесь: https://stackoverflow.com/questions/526 ... p-requests

Вернуться в «C#»