web-dev-qa-db-ja.com

必須の仮パラメーター '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()
    {

    }
18
ASPCoder1450

このエラーは、適切なベースコンストラクターを呼び出さないことを示しています。派生クラスのコンストラクター...

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)
{ }

C#6では、ベースタイプにコンストラクターが1つしかない場合にこのメッセージが表示されるため、ベースコンストラクターのどの引数が欠落しているかについて可能な限り最高のヒントが得られます。 C#5では、メッセージは単に

GenericRepositoryには、引数が0のコンストラクタが含まれていません

32
Gert Arnold