Как лучше подходить к регистрации сервисов Dependency Injection в .Net Core - PullRequest
0 голосов
/ 25 сентября 2019

Я пытаюсь понять, как работает реестр служб Dependency Injection.У меня есть общий репозиторий, который выполняет операции с базой данных для любой таблицы, такой как GetAll (), GetById () ... и другой сервис, который будет фиксироваться в базе данных.такие как Save ();Commit ();

Я прочитал Различия в службах AddTransient, AddScoped и AddSingleton?

Мой вопрос: что будет лучшим вариантом для регистрации службы общего репозитория и базы данных?сервис и почему?

services.AddScoped (typeof (IRepository<>), typeof (Repository<>));
services.AddTransient (typeof (IRepository<>), typeof (Repository<>));
services.AddSingleton (typeof (IRepository<>), typeof (Repository<>));

1 Ответ

0 голосов
/ 26 сентября 2019

Используйте AddScoped.Услуги с определенной областью создаются для каждой области.В веб-приложении каждый веб-запрос создает новую отдельную область обслуживания.Это означает, что службы с областью действия обычно создаются для каждого веб-запроса.

Если вы вызываете db несколько раз в одном и том же запросе, то использование времени жизни с областью действия поможет сохранить один и тот же объект хранилища в памяти и многократно использовать его в течение нескольких раз.тот же контекст запроса Http.При использовании переходного процесса он создает новый объект хранилища несколько раз и потребляет больше памяти.

...