我有一个BaseController。
public abstract class BaseController<TEntity, TNewDTO, TEditDTO> : Controller, ICrudController<TNewDTO, TEditDTO>
where TEntity : class
where TNewDTO : new()
where TEditDTO : new()
{
public virtual ActionResult Edit(int? Id)
{
if (Id == null) return new HttpStatusCodeResult(400);
var ent = _db.Set<TEntity>().Find(Id);
if (ent == null) return new HttpStatusCodeResult(404);
var editDTO = new TEditDTO();
editDTO = ent; // how initilze?
return View(editDTO);
}
}
编辑操作中的,检查验证,从上下文中查找实体并填充编辑数据传输对象(DTO) EditDTO和ent有一些属性。 如何使用具有相同名称和类型的属性的另一种t类型自动初始化一个T
答案 0 :(得分:1)
我建议AutoMapper
AutoMapper是一个简单的小型库,用于解决一个看似复杂的问题 - 摆脱将一个对象映射到另一个对象的代码。这种类型的代码是相当沉闷和无聊的写,所以为什么不发明一个工具来为我们做?