Нет аргумента, который соответствует требуемому формальному параметру 'context GenericRepository <Incident>.GenericRepository(dbContext)

Я получаю это сообщение об ошибке, которое при попытке наследовать от моего GenericRepository. Ошибка говорит, что мне нужно также предоставить контекст, но я не уверен, как это сделать?

//IncidentRepository 
public class IncidentRepository : GenericRepository<Incident>

//Generic Repository (to inherit from)
public class GenericRepository<TEntity> where TEntity : class
{
internal db_SLee_FYPContext context;
internal DbSet<TEntity> dbSet;

public GenericRepository(db_SLee_FYPContext context)
{
    this.context = context;
    this.dbSet = context.Set<TEntity>();
}

ИЗМЕНИТЬ:

Просто, чтобы проверить, понял ли я это?

  public class IncidentRepository: GenericRepository<Incident>
  {

    public IncidentRepository(db_SLee_FYPContext context)
    {
        this.context = context;
    }

    //Then in my genric repository
    public GenericRepository()
    {

    }

Ответы

Ответ 1

Ошибка говорит вам, что вы не вызываете соответствующий базовый конструктор. Конструктор в производном классе...

public IncidentRepository(db_SLee_FYPContext context)
{
    this.context = context;
}

... на самом деле делает это:

public IncidentRepository(db_SLee_FYPContext context)
    : base()
{
    this.context = context;
}

Но нет конструктора базы без параметров.

Вы должны исправить это, вызвав соответствующий базовый конструктор:

public IncidentRepository(db_SLee_FYPContext context)
    : base(context)
{ }

В С# 6 вы получите это сообщение, если в базовом типе есть только один конструктор, поэтому он дает вам наилучший намек, какой аргумент в базовом конструкторе отсутствует. В С# 5 сообщение будет просто

GenericRepository не содержит конструктор, который принимает 0 аргументов