1

このコードはいくつかのリポジトリ クラスにあり、メソッドを思い出し続けていますGetConnectionString()。基本的に、GetConnectionString()一度呼び出すと、ConnectionStringすべてのリポジトリ クラスで変数を使用できるようになり、フェッチされた変数を再利用したいと考えています。どうすればいいですか?

public class OrganizationRepository
{
    string ConnectionString;
    public static string GetConnectionString()
    {
        string strReturn = string.Empty;
        strReturn = ConfigurationManager.ConnectionStrings["MyTeamScoresDB"].ConnectionString;
        return strReturn;
    }
  ....
 }
4

3 に答える 3

2

接続文字列は、必要なクラスに渡します。

ただし、これを必要とする唯一のクラスはリポジトリ クラスです。

ここで再利用を実現する唯一の方法はRepositoryBase、接続文字列を取得する場所を用意し、すべてのリポジトリが継承してアクセスできるようにすることです。

public class RepositoryBase
{
    private string connectionString;
    public static string RepositoryBase()
    {
        connectionString= ConfigurationManager.ConnectionStrings["MyTeamScoresDB"].ConnectionString;
    }

    protected string ConnectionString
    {
       get { return connectionString;}
    }
  ....
}

public class OrganizationRepository : RepositoryBase
{
    // Can use the ConnectionString property of the base class
}
于 2013-01-05T18:40:36.433 に答える
1

構成マネージャー クラスは既にキャッシュを提供しているため、ConnectionStrings プロパティを複数回呼び出してもオーバーヘッドは発生しません。さらに、接続文字列を管理する抽象ベース リポジトリ クラスを作成することをお勧めします。

于 2013-01-05T19:11:41.837 に答える