2016-10-26 92 views
1

我需要在.net核心庫中的存儲庫類中包裝一些函數。但我得到一個錯誤,我的構造函數沒有正確的構造函數。我究竟做錯了什麼? 這裏是我的DbContext代碼從.net核心庫獲取存儲庫

public class effMercContext : DbContext 
{ 
    public DbSet<Department> Departments { get; set; } 
    public DbSet<Employee> Employees { get; set; } 
    public DbSet<Project> Projects { get; set; } 
    public effMercContext(DbContextOptions<effMercContext> options) 
     : base(options) 
    { 
    } 
} 
    public class EffMercDbContextFactory : IDbContextFactory<effMercContext> 
{ 
    public effMercContext Create(DbContextFactoryOptions options) 
    { 
     var builder = new DbContextOptionsBuilder<effMercContext>(); 
     builder.UseSqlServer("Server=(localdb)\\mssqllocaldb;Database=pinchdb;Trusted_Connection=True;MultipleActiveResultSets=true"); 
     return new effMercContext(builder.Options); 
    } 
} 

我的倉庫類到目前爲止

public class EmployeeRepository 
{ 
    public Employee GetByID(int id) 
    { 
     using (effMercContext db = new effMercContext()) 
     { 

     } 
    } 
} 
+1

當然如果您定義了一個只能通過將特定參數傳遞給其構造函數來實例化的類,然後您嘗試實例化該類而不傳遞任何參數給構造函數,那麼它就不起作用。哪一部分不明顯,你的類的構造函數需要一個參數,你是不是傳遞任何參數給你的構造函數,或者由此產生的錯誤?解釋哪一部分不清楚可讓答案專注於該部分。 – hvd

+0

我不清楚,如何實現我的存儲庫。我想製作這樣的[鏈接](https://docs.asp.net/en/latest/fundamentals/dependency-injection.html#using-framework-provided-services),但在.net核心庫中,以及不是在界面中,但在類 –

+0

@ВасяПупкин但你的問題不處理這個話題。這是關於你的'DbContext'的一個錯誤。請提出一個新的問題屬於這個主題 – rbr94

回答

0

您可以通過修改EmployeeRepository如下...

public class EmployeeRepository 
{ 
    var optionsBuilder = new DbContextOptionsBuilder<effMercContext>(); 
    // add necessary options 
    public Employee GetByID(int id) 
    { 
     using (effMercContext db = new effMercContext(optionsBuilder.Options)) 
     { 

     } 
    } 
} 

要了解更多信息,你可以按照this

1

那是因爲你在這裏調用構造函數不帶參數:

public Employee GetByID(int id) { 
    using (effMercContext db = new effMercContext()) 
    { 

    } 
} 

但在你DbContext類,你只需要一個參數的構造函數:

public class effMercContext : DbContext { 
    public effMercContext(DbContextOptions<effMercContext> options) 
     : base(options) { 
    } 
} 

看看這篇文章,瞭解如何使用DbContextOptionshttps://docs.efproject.net/en/latest/miscellaneous/configuring-dbcontext.html

+0

好吧,所以我應該通過什麼參數? –