Entity Framework Core: How to get the Connection from the DbContext?

Nicola Prada picture Nicola Prada · Jan 30, 2017 · Viewed 32.8k times · Source

I am trying the new Entity Framework Core with MySQL Connector.

I can get a valid DbContext and write into the database so everything has been setup correctly.

I need to get the Connection from the DbContext because I have to test for it at application starting using a connection.Open() inside a try statement. If there is not a valid connection, the console app should try to start MySQL Server and retry.

How can I get the Connection from the DbContext?

Before EF6 by context.Connection. After EF6 by context.Database.Connection.

It seems the latest has been removed too from EFCore.

Answer

Developer picture Developer · Jan 30, 2017

The Microsoft.EntityFrameworkCore.Relational (https://www.nuget.org/packages/Microsoft.EntityFrameworkCore.Relational/) package provides extension methods for this - you can use dbContext.Database.OpenConnection() or dbContext.Database.GetDbConnection() to get the DbConnection object.

Note: if you have Microsoft.EntityFrameworkCore.SqlServer installed then you don't have to explicitly install this package