2016-08-26 12 views
2

私はヘルパークラスを作成し、静的メソッドの内部からDBを呼び出す必要があるとします。どのようにしてdotnetコアのDBContextを使用するのですか

There is no argument given that corresponds to the required formal parameter 
'options' of 'ApplicationDbContext.ApplicationDbContext(DbContextOptions<‌​ 
ApplicationDbContext‌​>)' 

私は、だから私は、私は私のコントローラからの私のコンテキストを取得し、それを渡すことができます知っている、しかし、それは唯一の方法であるだけで

public static bool IsKeyValid(string key) 
    { 
     var isValid = false; 

     if (!String.IsNullOrEmpty(key)) { 
      isValid = new ApplicationDbContext().Children.Any(x => x.Token == key); 
     } 

     return isValid; 
    } 

を行うように見えることはできませんか?すべてのドキュメントがちょうどちょっと任意の助けをいただければ幸いです http://ef.readthedocs.io/en/latest/querying/basic.html#id3

「それがどのように簡単に見て、ねえ、新しいコンテキストを作る」と言うので

は、私は非常に困惑している

enter image description here

+0

エラーまたは例外を? – Sampath

+0

エラーとは何ですか? – Developer

+0

'ApplicationDbContext.ApplicationDbContext(DbContextOptions )'の必須の仮引数 'options'に対応する引数はありません –

答えて

2

コンテキストを手動で作成する必要がある場合は、以下のように構成できます。

var options = new DbContextOptionsBuilder<ApplicationDbContext>(); 
options.UseSqlServer(Configuration.GetConnectionStringSecureValue("DefaultConnection")); 
_context = new ApplicationDbContext(options.Options); 

これはあまりにもご覧ください。Configuring a DbContext

+1

なぜそれほど冗長で冗長でなければならないのですか?これは文字通りそれをつかむ唯一の方法ですか? –

+0

はい、上記の文書で詳細を読むことができます。 – Sampath

+0

このサンプルでは、​​どのように "Configuration"のインスタンスを取得しますか?私はそれをStartup.csでIConfiguratiionRootとして利用できると思っていますが、そのコードをヘルパーに貼り付けるだけではそれを得ることはできません。 これは、ApplicationDbContextのパラメータのないコンストラクタにこれをラップすることです。 –

関連する問題