Должен ли я реализовать «единицу работы» внутри хранилища или сделать это явно? - PullRequest
0 голосов
/ 23 июня 2019

Тем не менее, я должен кодировать хранилище следующим образом:

    public class CustomerRepository : ICustomerRepository
    {
        private MyContext context = null;

        public CustomerRepository(MyContext context)
        {
            this.context = context;
        }

        public Task Add(Customer customer)
        {
            context.Customers.Add(customer);

            return context.SaveChangesAsync();
        }
    }

Или вот так:

    public class CustomerRepository : ICustomerRepository
    {
        private MyContext context = null;

        public CustomerRepository(MyContext context)
        {
            this.context = context;
        }

        public void Add(Customer customer)
        {
            context.Customers.Add(customer);
        }

        public Task Save()
        {
            return context.SaveChangesAsync();
        }
    }

В настоящее время я собираюсь с первым вариантом, но этоНемного раздражает, когда есть какая-то сложная логика, которая требует более одного хранилища для совместной работы.Проблема с вариантом 2 заключается в том, что мне нужно несколько раз вызывать метод Save, и я должен помнить, чтобы он вызывался в конце любой бизнес-логики, которая изменяет базу данных.

...