Допустим, я хочу заполнить список CustomerViewModel, созданный на основе модели Customer Entity Framework, с некоторыми полями (например, Balance), рассчитанными отдельно.
Ниже у меня есть код, который работает для списков - он реализован на моем сервисном уровне, но я также хочу выполнить этот код, когда я просто получаю один элемент из базы данных и выполняю также в разных сервисах, к которым я обращаюсь Данные клиентов также.
Как мне это сделать, чтобы обеспечить производительность, чтобы не дублировать код - тот, который используется для расчета баланса?
public List<CustomerViewModel> GetCustomerViewModelList()
{
IQueryable<CustomerViewModel> list = from k in _customerRepository.List()
select new CustomerViewModel
{
Id = k.Id,
Name = k.Name,
Balance =
k.Event.Where(z => z.EventType == (int) EventTypes.Income).Sum(z => z.Amount)
};
return list.ToList();
}