最近在項目中,使用EF編程時,在使用泛型類型的過程中,寫了一上午,結果生成時,編譯不通過,報出如下錯誤:
“T”必須是具有公共的無參數構造函數的非抽象類型,才能用作泛型類型或方法。如圖:
找了好久,終於讓我給找到原因了。分享給大家。呵呵
1. 我要項目中用到泛型類型的有:
【說明】大家看了截圖,可能會發現4個類有一點點區別,就是 public class BaseRepository<T> : IBaseRepository<T> where T : class 少了 new()約束。
沒錯,就是因為少了這個約束。在系統中,若是所有將使用同一Model類的基類泛型類型的T,必須保證這些類型的對 T 的約束保持一致。否則將會報出此錯誤。