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 回答
0

那这个呢:

public class MyConfiguration{

     private static string myConnString;

     public static string MyConnectionString
     {
         get{
               if(myConnString == null){
                    myConnString = ConfigurationManager.ConnectionStrings["MyTeamScoresDB"].ConnectionString;
               }
               return myConnString;
         }
     } 
}

它将在请求时第一次初始化连接字符串,然后重用该值。

于 2013-01-05T19:08:45.503 回答