Единица работы и инъекция зависимости - PullRequest
0 голосов
/ 23 мая 2018

Я хочу реализовать шаблон проектирования Unit Of Work в моем проекте, а из этой статьи dbContext и все репозитории инициализируются в классе UnitOfWork, и я увидел, что здесь нет места для внедрения зависимостей.Есть ли способ использовать инъекцию зависимости или нет необходимости и почему?

Ответы [ 2 ]

0 голосов
/ 23 мая 2018

Вот реализация единицы работы, если вы используете DbContext:

class UnitOfWork : IDisposable
{
   private readonly DbContext _yourDbContext; 

   public UnitOfWork(DbContext yourDbContext)
   {
      _yourDbContext = yourDbContext
   }

   public void Save()
   {
       _yourDbContext.Save();      
   }

   void Dispose()
   {       
       _yourDbContext = null;   
   }
}

public interface IUnitOfWork
{
    void Save();    
}

Использование:

IUnitOfWork _uow;

_yourStudentRepository.Add(Student);
_yourAddressRepository.Add(Address);
_uow.Save();
0 голосов
/ 23 мая 2018

Вы можете создать DI, если хотите.

public class UnitOfWork : IDisposable
{
    private ISchoolContext _context;

    public UnitOfWork(ISchoolContext context) 
    {
        _context = context;
    }    
}

Тогда в вашем контроллере вы тоже можете таким же образом ввести Единицу работы.

Вы можете делать все этоТеперь вопрос в том, нужен ли вам этот модный DI, лично мне, но это зависит от вас и ваших потребностей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...