Я действительно изо всех сил пытаюсь обернуть голову вокруг некоторых из этого материала. Позвольте мне привести пример того, где я борюсь.
Я использую Linq-2-Sql в качестве DAL для своего приложения и шаблон IRepository, используемый в образце приложения MVC Storefront от Роба Конери.
В моем домене есть модель клиента, в которой есть коллекция моделей адресов. В моем пользовательском интерфейсе есть кнопка, которая позволяет пользователю добавить новый адрес для клиента. Это открывает редактор адресов, который позволяет им заполнить всю информацию.
Что будет дальше? Сохраняется ли адрес в базе данных, затем добавляется в список в моем объекте customer? Он просто добавляется в список, но не обновляется, пока объект Customer не будет сохранен? Что делать, если пользователь хочет удалить адрес? Удалить адрес в базе данных, а затем удалить его из списка? Или они просто делают все удаления / добавления, которые хотят, и я каждый раз выгружаю все из базы данных и обновляю все, что находится в коллекции Customer.Addresses? Какой правильный поток здесь?
Если коллекция адресов обновляется через репозиторий, вызывая что-то вроде этого:
public void AddAddressToCustomer(Customer c, Address a)
{
//validate and save address to db
//add the newly saved address to the Customer Object
}
Помощь ...