Получить имя базы данных ASP.NET EntityFramework

Я создал приложение ASP.NET EF с MySQL, используя следующий учебник: http://www.asp.net/identity/overview/getting-started/aspnet-identity-using-mysql-storage-with-an-entityframework-mysql-provider Его работа, но я не люблю устанавливать имя моей базы данных, жестко закодированное в классе MySqlInitializer, - myDatabaseName в следующем фрагменте:

var migrationHistoryTableExists = ((IObjectContextAdapter)context).ObjectContext.ExecuteStoreQuery<int>(
        string.Format(
          "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '{0}' AND table_name = '__MigrationHistory'",
          "myDatabaseName"));

Я ищу способ получить имя базы данных из DbContext динамически, чтобы сохранить имя базы данных только в строке подключения, а не во второй раз в моем MySqlInitializer. Но я не могу найти никакого атрибута для имени, ни в DbContext, ни в атрибуте Database DbContext.

Ответ 1

Это должно сделать вам работу

string databaseName = context.Database.Connection.Database;

Ответ 2

Для тех из вас, кто использует EF7 core 1.1 или меньше, вы можете сделать это в качестве альтернативы:

var databaseName = context.Database.GetDbConnection().Database