2014-07-10 76 views
3

我有一個BaseController。如何初始化T型c#

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耳鼻喉科有一些屬性。 我怎麼能初始化自動1噸與其他T類與具有相同名稱和類型的屬性

回答

1

我建議AutoMapper

AutoMapper是專爲解決一個看似複雜的問題,一個簡單的小庫 - 擺脫將一個對象映射到另一個對象的代碼。這種類型的代碼是相當沉悶和無聊的,所以爲什麼不發明一個工具來爲我們做呢?

+0

不知道爲什麼任何人會downvote這個答案,然後不發表評論。 –