Тем не менее, я должен кодировать хранилище следующим образом:
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
, и я должен помнить, чтобы он вызывался в конце любой бизнес-логики, которая изменяет базу данных.