Крупный Entity и ViewModel Mapping - PullRequest
0 голосов
/ 14 октября 2011

У меня очень большая сущность с несколькими сотнями свойств. У меня есть хранилище, которое я использую, чтобы выбрать все объекты и возвращает IEnumerable объекта.

В моем контроллере я затем использую automapper для сопоставления с индексом ViewModel этой сущности, и он использует только два свойства сущности в ViewModel. Возвращение занимает довольно много времени по сравнению с выбором из двух свойств. Казалось бы, он выбирает все свойства объекта, а затем просто использует два из них.

Какой рекомендуемый способ сделать это? Нужно ли создавать модель представления в хранилище?

Graeme

1 Ответ

2 голосов
/ 14 октября 2011

Вы можете передать DTO или другую модель.

public class LargeEntityDto
{
    public string Foo { get; set; }
    public string Bar { get; set; }
}

Тогда в вашем хранилище

public IEnumerable<LargeEntityDto> GetLargeEntityDtos()
{
   return context.LargeEntities
      .Select(e => new LargeEntityDto { Foo = e.Foo, Bar = e.Bar});
}
...