次のチュートリアルを使用して、MySQLでASP.NET EFアプリケーションを作成しました: 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に2回目ではなく、接続文字列にのみデータベース名を格納する方法を探しています。しかし、DbContextにも、DbContextのDatabase-attributeにも、名前の属性を見つけることができません。
これはあなたのために仕事をするはずです
string databaseName = context.Database.Connection.Database;
EFコアを使用している場合は、これを代替として実行できます。
var databaseName = context.Database.GetDbConnection().Database