ホームページ  >  記事  >  データベース  >  Entity Framework 6 for MySQL で動的データベース接続を実現するにはどうすればよいですか?

Entity Framework 6 for MySQL で動的データベース接続を実現するにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-11-11 04:14:03224ブラウズ

How to Achieve Dynamic Database Connection with Entity Framework 6 for MySQL?

Entity Framework 6 for MySQL を使用した動的データベース接続

Entity Framework 6 (EF6) を使用して複数のスキーマを動的に接続するのは難しい場合があります。この記事では、MySQL データベースへの動的接続を確立し、選択したデータベース名に基づいて接続文字列を渡すための包括的なソリューションを提供します。

MySQL を EF6 に向けて準備する

開始MySQL .Net Connector 6.8.1 (ベータ) をインストールし、Visual Studio ソリューションでライブラリを参照します。接続文字列とプロバイダー情報を Web.config ファイルに追加します:

<connectionStrings>
    <add name="mysqlCon"
         connectionString="Server=localhost;Database={0};Uid=username;Pwd=password" 
         providerName="MySql.Data.MySqlClient" />
</connectionStrings>

<entityFramework>
    <defaultConnectionFactory type="MySql.Data.Entity.MySqlConnectionFactory, MySql.Data.Entity.EF6" />
    <providers>
        <provider invariantName="MySql.Data.MySqlClient" type="MySql.Data.MySqlClient.MySqlProviderServices, MySql.Data.Entity.EF6" />
    </providers>
</entityFramework>

動的データベース接続の作成

次に、ApplicationDbContext クラスを変更します:

public class ApplicationDbContext: DbContext
{
    public ApplicationDbContext(string dbName) : base(GetConnectionString(dbName))
    {
    }

    public static string GetConnectionString(string dbName)
    {
        // Server=localhost;Database={0};Uid=username;Pwd=password
        var connString = 
            ConfigurationManager.ConnectionStrings["mysqlCon"].ConnectionString.ToString();

        return String.Format(connString, dbName);
    }
}

これにより、新しい ApplicationDbContext インスタンスの作成時にデータベース名をパラメータとして動的に渡すことができます。

データベース移行の処理

移行の場合は、MigrationsContextFactory を作成します。 class:

public class MigrationsContextFactory : IDbContextFactory<ApplicationDbContext>
{
    public ApplicationDbContext Create()
    {
        return new ApplicationDbContext("developmentdb");
    }
}

このファクトリは、移行のデフォルト データベースを指定し、移行のターゲットが正しいスキーマになるようにします。

結論

このアプローチの利用Entity Framework 6 でデータベース スキーマの動的な選択が可能になります。デフォルトの接続ファクトリを変更し、接続文字列を動的に生成するヘルパー メソッドを作成することで、複数のスキーマに効率的に接続できます。

以上がEntity Framework 6 for MySQL で動的データベース接続を実現するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。