実行時の 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 サイトの他の関連記事を参照してください。