ホームページ > バックエンド開発 > C++ > 実行時に Entity Framework データベース接続を動的に変更する方法

実行時に Entity Framework データベース接続を動的に変更する方法

Linda Hamilton
リリース: 2025-01-14 07:18:44
オリジナル
680 人が閲覧しました

How to Dynamically Change Entity Framework Database Connections at Runtime?

実行時の Entity Framework 接続の変更

Entity Framework (EF) Web API プロジェクトでは、データベース接続を動的に切り替えることが一般的な要件です。この記事では、接続管理の重要な側面について説明し、次の質問に答えます:

接続の変更方法:

次の手順に従って、データ コンテキスト接続を変更できます:

<code>public void Connect(Database database)
{
    //构建 SQL 连接字符串
    SqlConnectionStringBuilder sqlString = new SqlConnectionStringBuilder()
    {
        DataSource = database.Server,
        InitialCatalog = database.Catalog,
        UserID = database.Username,
        Password = database.Password,
    };

    //构建实体框架连接字符串
    EntityConnectionStringBuilder entityString = new EntityConnectionStringBuilder()
    {
        Provider = database.Provider,
        Metadata = Settings.Default.Metadata,
        ProviderConnectionString = sqlString.ToString()
    };

    //将新的连接字符串分配给数据上下文
    // ...
}</code>
ログイン後にコピー

接続の永続性:

Web API プロジェクトでは、コンテキストが使用されるたびに接続文字列をデータ コンテキストに渡す必要があります。これにより、コンテキストはユーザーの最新のログインに基づいて正しい接続を使用するようになります。

EF 接続管理:

質問で提供されているコードは、接続文字列がアプリケーション構成ファイルに保存される EF のデフォルトの動作に依存しています。ただし、より高い柔軟性と制御を提供する他の方法もあります。たとえば、次の拡張メソッドを使用すると、現在のユーザーの選択に基づいて接続文字列を動的に変更できます:

<code>public static class ConnectionTools
{
    public static void ChangeDatabase(
        this DbContext source,
        string initialCatalog = "",
        string dataSource = "",
        string userId = "",
        string password = "",
        bool integratedSecuity = true,
        string configConnectionStringName = "")
    {
        var sqlCnxStringBuilder = new SqlConnectionStringBuilder
        (System.Configuration.ConfigurationManager
            .ConnectionStrings[configConnectionStringName].ConnectionString);

        // ... [设置连接属性] ...

        //将新的连接字符串分配给数据上下文
        source.Database.Connection.ConnectionString
            = sqlCnxStringBuilder.ConnectionString;
    }
}</code>
ログイン後にコピー

この方法を使用すると、構成ファイル内の接続文字列を変更せずに、データベース名やサーバー アドレスなどの特定の接続プロパティを変更できます。

これらのテクノロジを使用すると、EF Web API アプリケーションでのデータベース接続を効果的に管理でき、データ アクセス レイヤーがユーザーのニーズの変化に適応できる柔軟性と動的性を確保できます。

以上が実行時に Entity Framework データベース接続を動的に変更する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート