我在.net进程内存不足的应用程序中遇到了一些问题。我在应用程序中做的一个更改是添加了很多Linq到Sql类。我想知道我是如何创建DataContext的。
我可以通过在需要时创建datacontext来创建我的datacontext。显然,如果我要更改数据,我会创建一个变量并保存datacontext,因为我需要在多个语句中使用相同的数据上下文。
技术1
public class SchoolRepository
{
DataBaseDataContext GetCtx()
{
return new DataBaseDataContext();
}
public List<School> GetSchools()
{
return GetCtx().Schools.ToList();
}
}
这是我可以创建DataContext的另一种方法。在这种情况下,我有一个类字段,它保存对DataContext的引用。
技术2:
public class SchoolRepository
{
private DataBaseDataContext _ctx = null;
DataBaseDataContext ctx
{
get { return _ctx = (_ctx ?? new DataBaseDataContext()); }
}
public List<School> GetSchools()
{
return ctx.Schools.ToList();
}
}
我一直在使用第二种方式(使用类变量),我想知道这是否会导致上下文比第一种方式更长时间 - 因为只要一个实例它就会坚持下去我的班级被困住了。
也许我在这里抓住稻草 - 但我想知道一种方式是否比另一种方式“更安全”。