我正在学习AutoMapper并理解它用于对象到对象的映射。但现在EFCodeFirst,dapper和Petpoco都冷却了什么,这将允许我们直接使用我们的POCO数据库?
所以有人能让我知道为什么我们仍然需要自动播放器吗?
提前致谢
最诚挚的问候, Jalpesh
答案 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);