LinqPadをEF Coreコンテキストで動作させる方法はありますか?

entity-framework-core linqpad

質問

DbContexts Entity Framework Core DbContextsのサポートが不足している(まだ)のを見逃してしまう何かがあるかどうかを判断しようとしています。私は4.6.1( LinqPadフォーラムで提案されているように )のコードターゲティングをコンパイルし、 "Entity Framework V7"ドライバを試しましたが、その名前が示すように、最新のものだとは思いません。それでも、コンストラクタのapp.configファイルまたは接続文字列を要求します。

コンテキストの追加ダイアログ

EFコアコンテキストでは接続文字列ではなく構築にDbContextOptionsが使用さDbContextOptionsため、接続文字列をDbContextOptionsコンストラクタオーバーロードを作成する可能性があると考えていましたが、基盤となるデータベースドライバは処理されません。コンテキストを構築するためのファクトリを指定する方法はありますか?他の可能性は?私はLinqPadなしで失われた気分です。

人気のある回答

最新のEFCore 1.1 LINQPadドライバ(v1.1.1.1)は、文字列を受け入れるコンストラクタを正しく使用できます(このオプションがLINQPadで選択されている場合)。

したがって、次のコンストラクタを追加することは可能です:

public ApplicationDbContext(string connectionString) : this(new DbContextOptionsBuilder<ApplicationDbContext>()
        .UseSqlServer(connectionString).Options)
    { }

これは、このコンテキストインスタンスをSQL Serverプロバイダにハードリンクしますが、少なくとも接続文字列には接続しません。さらに、あなたのアプリはこのコンストラクタを使用しようとは思わないでしょう、EF Coreはctorを期待/促進しません。文字列を受け入れる。

安全性をさらに#if DEBUG ... #endifために、このコンストラクタを#if DEBUG ... #endifラップすることで、決して生産にならないようにすることができます。



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
このKBは合法ですか? はい、理由を学ぶ