Creé una aplicación ASP.NET EF con MySQL usando el siguiente tutorial: http://www.asp.net/identity/overview/getting-started/aspnet-identity-using-mysql-storage-with-an-entityframework-mysql -proveedor Funciona, pero no me gusta configurar el nombre de mi base de datos codificada en la clase MySqlInitializer, llamada myDatabaseName en el siguiente fragmento:
var migrationHistoryTableExists = ((IObjectContextAdapter)context).ObjectContext.ExecuteStoreQuery<int>( string.Format( "SELECT COUNT(*) FROM information_schema.tables WHERE table_schema = '{0}' AND table_name = '__MigrationHistory'", "myDatabaseName"));Estoy buscando una manera de obtener el nombre de la base de datos de DbContext dinámicamente para almacenar el nombre de la base de datos solo en la cadena de conexión y no una segunda vez en mi MySqlInitializer. Pero no puedo encontrar ningún atributo para el nombre, ni en DbContext ni en el atributo de base de datos de DbContext.
Para aquellos de ustedes que usan EF core, pueden hacer esto como una alternativa:
var databaseName = context.Database.GetDbConnection().DatabaseEsto debería hacer el trabajo por ti
string databaseName = context.Database.Connection.Database;