Linq to sql 使用多个DataContext的有效方法
在我的项目中,我有大约10个DataContext。我的问题是,我是必须使用全局实例,还是必须在方法中创建datacontext的每个实例。从设计角度来看,哪种方法(方法1和方法2)更好Linq to sql 使用多个DataContext的有效方法,linq-to-sql,Linq To Sql,在我的项目中,我有大约10个DataContext。我的问题是,我是必须使用全局实例,还是必须在方法中创建datacontext的每个实例。从设计角度来看,哪种方法(方法1和方法2)更好 public class Database { USDataContext USDB = new USCDataContext(); //Method 1 Global instance public void update US_CountryTable() {
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;
}
}
}
谢谢我实际上会结合使用这两种方法。我将使用一个单例类来允许访问一个中央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())
{
...
}
}
}
GBDataContext和USCDataContext()它们是不同的数据库,所以我必须创建两个单独的AppDC类??如果您不想的话,就不能创建。例如,DataAccessOne方法可以使用GBDataContext,DataAccessTwo方法可以使用USCDataContext。您可以在ApplicationDataContext类中引用任意多个不同的DataContext,但只需在代码中引用单个AppDC.Instance。例如,调用DataAccessOne方法:AppDC.Instance.DataAccessOne()。