使用LinqToSql创建DataContext - 可以在类结果中存储内存问题中的集合吗?

时间:2012-05-10 19:59:38

标签: asp.net-mvc linq-to-sql garbage-collection datacontext

我在.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();
        }

    }

我一直在使用第二种方式(使用类变量),我想知道这是否会导致上下文比第一种方式更长时间 - 因为只要一个实例它就会坚持下去我的班级被困住了。

也许我在这里抓住稻草 - 但我想知道一种方式是否比另一种方式“更安全”。

0 个答案:

没有答案