“T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法

最近在项目中,使用EF编程时,在使用泛型类型的过程中,写了一上午,结果生成时,编译不通过,报出如下错误:

“T”必须是具有公共的无参数构造函数的非抽象类型,才能用作泛型类型或方法。如图:

 

找了好久,终于让我给找到原因了。分享给大家。呵呵

 

1.  我要项目中用到泛型类型的有:

 

 

【说明】大家看了截图,可能会发现4个类有一点点区别,就是   public class BaseRepository<T> : IBaseRepository<T> where T : class 少了 new()约束。

        没错,就是因为少了这个约束。在系统中,若是所有将使用同一Model类的基类泛型类型的T,必须保证这些类型的对 T 的约束保持一致。否则将会报出此错误。

posted @ 2016-03-07 15:17  Mr▪King  阅读(3144)  评论(0编辑  收藏  举报