我在 .net 进程内存不足的应用程序中遇到了一些问题。我在应用程序中所做的一项更改是向 Sql 类添加了很多 Linq。我想知道我如何创建 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();
}
}
我一直在使用第二种方式(使用类变量),我想知道这是否会导致上下文比第一种方式停留更长的时间——因为只要我的类的一个实例它就会持续存在卡在周围。
也许我在这里抓住了稻草——但我想知道一种方式是否比另一种方式“更安全”。