Нам действительно нужен Automapper? - PullRequest
3 голосов
/ 05 сентября 2011

Я изучал AutoMapper и понял, как его использовать для сопоставления объектов.Но теперь есть EFCodeFirst, dapper и Petpoco, которые все охлаждают, что позволит нам использовать нашу POCO напрямую с базой данных?

Так кто-нибудь может дать мне знать, почему нам все еще нужен autopper?

Спасибо взаранее

С наилучшими пожеланиями, Jalpesh

1 Ответ

6 голосов
/ 05 сентября 2011

Я обычно использую Automapper для сопоставления моделей доменов для просмотра mdoels. Если вы используете DDD, часто говорят, что не стоит использовать ваши доменные модели в ваших представлениях - представления часто имеют другой набор проблем для домена.

Например, в вашем домене может быть модель пользователя:

public class User
{
  public int Id {get;set;}
  public string EmailAddress {get;set;}
  public string FirstName {get;set;}
  public string Surname {get;set;}
  public string HashedPassword {get;set;}
  public string EyeColour {get;set;}
}

И у вас может быть страница сводки пользователя, которая показывает подмножество этих элементов:

public class UserSummary
{
  public string EmailAddress {get;set;}
  public string Surname {get;set;}
}

Вы можете использовать класс UserSummary в представлении, но вы, вероятно, выберете модель пользователя домена из базы данных. В этом случае вы можете использовать Automapper для сопоставления Domain.User с ViewModel.UserSummary

var user = _repository.Get(1);
var viewmodel = Automapper.Map<Domain.User, ViewModel.UserSummary>(user);
return View(viewmodel);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...