Отслеживание 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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