我是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/

10-12 04:24
查看更多