1

サイトのデータ モジュールをアセンブリ (単一の dll ファイル) に分離したいのですが、Web アプリケーションを処理する際にサイトのConnectionStringを取得して渡す最良の方法は何ですか。データ アセンブリ内で、 ConnectionManager という名前の静的クラスを作成しました。 Web.Config ファイル内にある接続名を渡して保存したいDatabaseConnectionNameという名前のプロパティがあります。この戦略では、名前を取得し、Global.asax ファイルで Web サイトの読み込み時に接続を確立し、それを前述のプロパティ ( DatabaseConnectionName ) に格納することにしました。しかし , これ は 私 が 使っ た 戦略 に 過ぎ ない. この 仕事 を する ための一般 的 パターンが 何で ある か は わから ない .

コードの部分 : ==================================== [ -------- ---- Global.asax ------------ ]

the code in the site that makes the Data module accessible for the site
    void Application_Start(object sender, EventArgs e) 
    {
         OurCompany.Data.ConnectionManager.DatabaseConnectionName = "MasterConnection";
    }

[ ------------ ConnectionManager クラス------------ ] これは、サイトとは別のデータ モジュールにあります。

public static class ConnectionManager
{

    public static SqlConnection  GetMasterConnection()
    {
        string connectionString = ConfigurationManager.ConnectionStrings[**DatabaseConnectionName**].ConnectionString;
        SqlConnection conn;     
        //conn.Open();
        conn = new SqlConnection(connectionString);
        return  conn;
    }

    private static string **databaseConnectionName**;
    public static string DatabaseConnectionName
    {
        get
        {
            return databaseConnectionName;
        }
        set
        {
            databaseConnectionName = value;
        }
    }

== おわり ============================================== ============

--- 質問は: ---

  1. 接続を保存する場所 (これは ConnectionManager クラス内のプロパティ、 theCompany.Data.ConnectionManager.DatabaseConnectionName でした)

  2. この接続を行うのはいつですか?(ここは Global.asax アプリケーションの読み込み時間でした)

  3. そのような情報を保存するのに最適な方法はどれですか: SessionState または ViewState または単純なプロパティ

  4. この戦略は良いですか?これのより良い方法や一般的なパターンを知っていますか?

情報をありがとう - MHM -

4

1 に答える 1

0

いくつかの考え...

  1. 開いているデータベース接続を保存してハングアップするべきではありません。接続を開き、データベース操作を行ってから、すぐに閉じます。取得は遅く、リリースは早めのルールを適用します。

  2. ポイント1を参照してください。

  3. データベース接続をセッション状態に保存しないでください。ポイント1をもう一度見てください。接続文字列を意味する場合は、必要なときに構成マネージャーから読み取るだけです。すでにキャッシュされています。車輪を再発明したりラップしたりしないでください。

  4. データ アクセスを管理する一般的なパターンの多くを抽象化したパターンとプラクティスのエンタープライズ ライブラリをご覧になることをお勧めします。

http://www.codeplex.com/entlib

于 2008-12-31T17:04:54.597 に答える