如何初始化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

如何初始化c#的T类型

我建议使用AutoMapper

AutoMapper是一个简单的小库,用来解决一个看似复杂的问题——摆脱将一个对象映射到另一个对象的代码。这种类型的代码写起来相当枯燥乏味,所以为什么不发明一个工具来帮我们完成呢?