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 的成员变量,我需要在 child 的构造函数中调用 Base 的构造函数。但是我收到了一个错误消息:即使
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/