16

GenericRepositoryから継承しようとすると、このエラーメッセージが表示されます。エラーは私も文脈を提供する必要があると言いますが、私はどのようにわからないのですか?GenericRepositoryのコンテキストに必要な引数はありません。<Incident> .GenericRepository(dbContext)

//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>(); 
} 

EDIT:

ちょうど私がこれを把握しましチェックするには?

public class IncidentRepository: GenericRepository<Incident> 
    { 

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

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

    } 
+0

私は私の事件リポジトリのデフォルトコンストラクタを必要とするだけ必要がありますが、私はまだ、このエラーを取得を取るコンストラクタが含まれていないだろう。 – ASPCoder1450

答えて

28

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

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

しかし、誰パラメータなしのベースのコンストラクタはありません:派生クラスのコンストラクタ...

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

は...これを行うことです。

あなたは、一致する基本コンストラクタを呼び出すことによってこの問題を解決する必要があります

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

C#6で、ベース型で唯一のコンストラクタがある場合、それはあなたにどの引数可能な限り最高のヒントを提供しますので、あなたが、このメッセージが表示されますベースのコンストラクタの中に存在しません。 C#5でのメッセージは、単に

GenericRepositoryは0引数

+0

よく説明されています。 – goamn

+0

ニースの答え。私は問題のソース(と修正)がより明白になるので、エラーメッセージ(この質問のタイトルに見られる)が "コンストラクタ"という言葉を使用したことを望みます –

関連する問題