如何初始化c#的T类型
本文关键字:类型 初始化 | 更新日期: 2023-09-27 18:12:18
我有一个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);
}
}
在Edit Action中,检查验证,从上下文中查找实体并填写Edit data Transfer Object (DTO)EditDTO和ent有一些属性。如何用具有相同名称和类型的属性的另一个T类型自动初始化一个T
我建议使用AutoMapper
AutoMapper是一个简单的小库,用来解决一个看似复杂的问题——摆脱将一个对象映射到另一个对象的代码。这种类型的代码写起来相当枯燥乏味,所以为什么不发明一个工具来帮我们完成呢?