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/

10-12 03:06