【发布时间】:2011-06-11 05:55:20
【问题描述】:
我目前有一个基于 Entity Framework v4 实体的存储库(已实现 CRUD 和 GET 操作)。我正在为这些实体创建相应的视图模型。我应该将它们之间的转换/映射放在哪里?在控制器中或修改存储库以在其方法中执行映射并返回(或接受)View Model 类型的对象?
我应该这样做吗
public ActionResult Index()
{
var person = new PersonRepository().Get();
var personViewModel = new PersonViewModel();
personViewModel.InjectFrom(person)
.InjectFrom<CountryToLookup>(person);
return View(personViewModel);
}
或者这个
public ActionResult Index()
{
var personViewModel = new PersonRepository().Get(); // returns object of type PersonViewModel
// and move this to repository
// var personViewModel = new PersonViewModel();
// personViewModel.InjectFrom(person)
// .InjectFrom<CountryToLookup>(person);
return View(personViewModel);
}
【问题讨论】:
-
由于您使用的是 valueinjecter 我强烈建议您从这里查看现场演示的源代码awesome.codeplex.com,查看 Cruder (Controller) 和 IBuilder
的实现
标签: asp.net-mvc entity-framework mapping automapper valueinjecter