我想在我的MVC C#實體框架應用程序上創建一個通用控制器。C#。什麼「類型T必須是引用類型才能用作參數。」手段?
public class GenericRecordController<T> : Controller
{
private DbSet<T> Table;
// ...
public action(){
// ...
db.Entry(T_Instance).State = System.Data.Entity.EntityState.Modified;
}
}
然而DbSet < Ť>和T_Instance線具有一個編譯錯誤。
類型Ť必須以使用它作爲參數的引用類型。
當我約束它的一類
Controller where T : class
它解決了。
上面的錯誤是什麼意思?
我不是要求解決方案。我想了解爲什麼會發生這個錯誤,爲什麼要爲一個類限制它解決它。
不完整且不清楚。此外,一個有爭議的設計選擇。 –
@HenkHolterman。爲什麼選擇糟糕的設計? –
它使您的控制器面向模型,它們應該是面向視圖的。對CRUD不必要,對所有其他目的有害。 –