Je reçois ce message d'erreur qui, lorsque j'essaie d'hériter de mon GenericRepository. L'erreur indique que je dois également fournir un contexte mais je ne sais pas comment?
//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>();
}
MODIFIER:
Juste pour vérifier que j'ai compris cela?
public class IncidentRepository: GenericRepository<Incident>
{
public IncidentRepository(db_SLee_FYPContext context)
{
this.context = context;
}
//Then in my genric repository
public GenericRepository()
{
}
L'erreur vous indique que vous n'appelez pas un constructeur de base approprié. Le constructeur dans la classe dérivée ...
public IncidentRepository(db_SLee_FYPContext context)
{
this.context = context;
}
... fait en fait ceci:
public IncidentRepository(db_SLee_FYPContext context)
: base()
{
this.context = context;
}
Mais il n'y a pas de constructeur de base sans paramètre.
Vous devez résoudre ce problème en appelant le constructeur de base correspondant:
public IncidentRepository(db_SLee_FYPContext context)
: base(context)
{ }
En C # 6, vous obtenez ce message s'il n'y a qu'un seul constructeur dans le type de base, il vous donne donc la meilleure indication possible de l'argument manquant dans le constructeur de base. En C # 5, le message serait simplement
GenericRepository ne contient pas de constructeur qui accepte 0 arguments