2016-10-26 2 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

に従うことができます学習するには、次の...

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

としてあなたEmployeeRepositoryを変更することができます特定の引数をそのコンストラクタに渡すことによってのみインスタンス化できるクラスを定義し、コンストラクタに引数を渡さずにインスタンス化しようとすると、動作しません。どの部分が明白でないか、クラスのコンストラクタが引数を必要とすること、コンストラクタに引数を渡さないこと、またはその結果として生じるエラー?どの部分が不明であるかを説明することで、その部分に答えを集中させることができます。 – hvd

+0

私はリポジトリの実装方法がわかりません。私はこのような[リンク](https://docs.asp.net/ja/latest/fundamentals/dependency-injection.html#using-framework-provided-services)を作っていますが、.netコアライブラリでは、インターフェイスではなく、クラス内 –

+0

@ВасяПупкинしかし、あなたの質問はこのトピックを処理しません。これは、あなたの 'DbContext'のエラーです。このトピックに属している新しい質問をしてください – rbr94

答えて

1

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

    } 
} 

しかし、あなたが唯一持っているあなたのDbContextクラスでの1つのパラメータを持つコンストラクタ:

を使用する方法を見つけるために、この記事では

ルック:https://docs.efproject.net/en/latest/miscellaneous/configuring-dbcontext.html

+0

私はどのようなパラメータを渡す必要がありますか? –

関連する問題