我想知道一个使用NHibernate、AutoMapper和ASP.NET MVC的“最佳实践”。目前,我使用的是:
class Entity
{
public int Id { get; set; }
public string Label { get; set; }
}
class Model
{
public int Id { get; set; }
public string Label { get; set; }
}实体和模型的映射方式如下:
Mapper.CreateMap<Entity,Model>();
Mapper.CreateMap<Model,Entity>()
.ConstructUsing( m => m.Id == 0 ? new Entity() : Repository.Get( m.Id ) );在控制器中:
public ActionResult Update( Model mdl )
{
// IMappingEngine is injected into the controller
var entity = this.mappingEngine.Map<Model,Entity>( mdl );
Repository.Save( entity );
return View(mdl);
} 这是正确的,还是可以改进的?
发布于 2010-08-23 19:44:33
我将把IMappingEngine注入到控制器中,而不是使用静态的Mapper类。然后,您将获得能够在测试中模拟它的所有好处。
看看AutoMapper的创建者提供的链接,
http://www.lostechies.com/blogs/jimmy_bogard/archive/2009/05/11/automapper-and-ioc.aspx
https://stackoverflow.com/questions/3538706
复制相似问题