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

編輯:

只是爲了檢查我抓住了這個?

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) 
{ 
    this.context = context; 
} 

...其實這樣做:

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

但沒有參基構造。

你應該通過調用匹配的基礎構造解決這個問題:

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

在C#6你得到這個消息,如果只有一個基類的構造函數,所以它給你最好的提示哪個參數在基礎構造函數中丟失。在C#5的消息,簡直是

GenericRepository不包含一個構造函數參數0

+0

很好解釋。 – goamn

+0

不錯的答案;祝錯誤信息(在這個問題上的標題所示)使用了「構造」,爲問題(和修復)的來源將更加明顯 –

相關問題