使用Multiple DataContext的有效方法

时间:2010-01-05 23:45:52

标签: linq-to-sql

在我的项目中,我有大约10个DataContext。我的问题是我是否必须使用全局实例或在方法中创建datacontext的每个单个实例。从设计的角度来看,哪种方法(来自method1和method2)更好。

public class Database
{

    USDataContext USDB = new USCDataContext();

    //Method 1 Global instance
    public void update US_CountryTable()
    {
        USDB.updateCountryTable();
    }

    // Method 2 individual instance
      public void Update CountryTable(string country)
      {
         switch (country)
        {
            case:GB
                GBDataContext GBDB = new GBCDataContext();
                GBDB.updateCountryTable();

                // Some suggest this may be helpful
                // using (GBDataContext  dbContext = new GBDataContext ())
                // { GBDB.updateCountryTable();
                // }
             break;
             case: US
                USDataContext USDB = new USCDataContext();
                USDB.updateCountryTable();
             break;
        } 

      }
}

由于

1 个答案:

答案 0 :(得分:0)

我实际上会使用这两种方法的组合。我将使用Singleton类来允许访问中央DataContext处理程序对象,以及一个包含各个数据访问方法的辅助类。我还将实现使用块来确保我的DataContext被初始化为干净并随每个请求一起处理。

public sealed class AppDC
{
    static readonly ApplicationDataContext _Instance = new ApplicationDataContext();

    static AppDC()
    {
    }

    AppDC()
    {
    }

    public static ApplicationDataContext Instance
    {
        get { return _Instance; }
    }
}

public static class ApplicationDataContext
{
    public static void DataAccessOne()
    {
        using (DataContext dc = new DataContext())
        {
            ...
        }
    }

    public static void DataAccessTwo()
    {
        using (DataContext dc = new DataContext())
        {
            ...
        }
    }
}