我是Linq的sql新手。我的问题很简单。
在DAL中让DataContext作为公共静态成员充当单例是一个好主意吗?
最佳答案
我通常会尝试将数据访问类的功能分组在一起,并使该类IDisposposable。
然后,在构造函数中创建DataContext,并在dispose方法中对DataContext运行.dispose()调用。
因此,当您需要该类中的某些内容时,可以将其包装在using语句中,并使用相同的DataContext进行一堆调用。
它与使用静态DataContext几乎具有相同的效果,但是意味着您不要忘记关闭连接,而且看起来比使事情变得静态还更多。
public class MyDataAccessClass: IDisposable
{
private readonly DbDataContext _dbContext;
public MyDataAccessClass()
{
_dbContext = new DbDataContext ();
}
public void Dispose()
{
_dbContext.Dispose();
}
public List<CoolData> GetStuff()
{
var d = _dbContext.CallStuff();
return d;
}
}
那你上课
using(var d = new MyDataAccessClass())
{
//Make lots of calls to different methods of d here and you'll reuse your DataContext
}
关于c# - DAL中的Linq2Sql静态Datacontext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12797491/