public class GenericRepository<TEntity> where TEntity : class
{
internal DbContext context;
internal DbSet<TEntity> dbSet;
public GenericRepository(DbContext context)
{
this.context = context;
this.dbSet = context.Set<TEntity>();
}
//snip
}
public class MyRepository<TEntity> where TEntity : GenericRepository<TEntity>
{
public MyRepository(DbContext context) : base(context){ }
//snip
}
我扩展了 GenericRepository
类,为了使用 base 的成员变量,我需要在子构造函数中调用 Base 的构造函数。但是我收到一条错误消息:
'object' does not contain a constructor that takes 1 arguments
即使 GenericRepository
有构造函数。
我做错了什么?
最佳答案
因为你的“基类”是object
, 不是 GenericRepository<TEntity>
.您在 TEntity
上添加了约束, 你没有继承 GenericRepository<TEntity>
.也许你的意思是:
public class MyRepository<TEntity> : GenericRepository<TEntity> where TEntity : class
{
public MyRepository(DbContext context) : base(context){ }
关于c# - 为什么我不能用参数调用基本构造函数方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37948795/