我们真的需要Automapper吗?

时间:2011-09-05 10:48:38

标签: automapper

我正在学习AutoMapper并理解它用于对象到对象的映射。但现在EFCodeFirst,dapper和Petpoco都冷却了什么,这将允许我们直接使用我们的POCO数据库?

所以有人能让我知道为什么我们仍然需要自动播放器吗?

提前致谢

最诚挚的问候, Jalpesh

1 个答案:

答案 0 :(得分:6)

我通常使用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类,但您可能会从db中获取域用户模型。在这种情况下,您可以使用Automapper将Domain.User映射到ViewModel.UserSummary

var user = _repository.Get(1);
var viewmodel = Automapper.Map<Domain.User, ViewModel.UserSummary>(user);
return View(viewmodel);