Каков наилучший способ обработки представлений (классов, которые не представляют сущности, но используются, например, для привязки списка DropDown) с использованием шаблона хранилища? Например, у меня есть следующий клиентский объект
public class Customer {
Guid ID {get;set;}
string FirstName {get;set;}
string LastName {get;set;}
List<Address> Addresses {get;set;}
}
и хранилище
public class CustomerRepository : IRepository<Customer> {
Customer GetByID(Guid id) { ... }
List<Customer> GetAll() { ... }
// Insert/Delete/Update Customer etc.
}
Теперь я хочу заполнить DropDown списком клиентов вместе с их базовым адресом, используя их идентификаторы в качестве значения свойства. У меня есть хранимая процедура, возвращающая эти данные, и я могу получить ее результат в список следующих объектов:
public class CustomerWithBaseAddress {
public Guid CustomerID {get;set;}
public string FullNameWithBaseAddress { get;set; }
}
Должно ли хранилище Клиента возвращать такие объекты или оно должно управляться другим специализированным хранилищем (но без операций сохранения / удаления)?