2017-01-30 15 views
10

私はMySQLコネクタで新しいEntity Frameworkコアを試しています。Entity Frameworkコア:DbContextからConnectionを取得する方法は?

有効なDbContextを取得してデータベースに書き込んで、すべてが正しく設定されているようにします。

私はtry文の中connection.Open()を使用して起動するアプリケーションでそれをテストする必要があるためDbContextからConnectionを取得する必要があります。有効な接続がない場合、コンソールアプリはMySQLサーバを起動して再試行する必要があります。

DbContextからConnectionを取得するにはどうすればよいですか?

EF6の前にcontext.Connection。 EF6の後にcontext.Database.Connection

最新のものもEFCoreから削除されているようです。

+0

のようなものがある - dbContext.Database.OpenConnection() 'や' dbContext.Database.GetDbConnectionは、 '() 'EF Coreの中で - それは有益でしょうか? – Developer

+0

いいえ、残念ながらそうではありません。私はcontext.Database.OpenConnection()やcontext.Database.GetConnection()メソッドのようなものを見ることはできません。 –

+0

なぜあなたはそれを取得していないか分かりません。その私のために表示されます。パッケージが不足している可能性がありますか?私は 'Microsoft.EntityFrameworkCore'名前空間の' RelationalDatabaseFacadeExtensions'という名前のエクステンションクラスの中に持っています - https://docs.microsoft.com/en-us/ef/core/api/microsoft.entityframeworkcore.relationaldatabasefacadeextensions – Developer

答えて

15

Microsoft.EntityFrameworkCore.Relationalhttps://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Relational/)パッケージには、このための拡張メソッドを提供します - あなたはDbConnectionオブジェクトを取得するためにdbContext.Database.OpenConnection()dbContext.Database.GetDbConnection()を使用することができます。

注:Microsoft.EntityFrameworkCore.SqlServerがインストールされている場合、あなたは明示的にこのパッケージをインストールする必要はありません

+0

2.0のGetDbConnection() – John

+0

拡張子を必ず含めてください。これは私の問題でした。 (Microsoft.EntityFrameworkCore.Extensions;を使用) – hurlbz

関連する問題