应该使用哪种设计模式而不是重复使用(connection.opensession)'声明

时间:2016-09-08 13:05:33

标签: c# database database-connection ravendb nosql

我正在使用RavenDB,并且需要为每个数据库操作打开数据库会话 例如:
创建代码:

 using (IDocumentSession session = _ravenContext.OpenSession()) 
  {                        
      session.Store(entity); 
      session.SaveChanges(); 
  }

GetById代码:

using (IDocumentSession session = _ravenContext.OpenSession()) 
      {                        
           var entity= session.Load<T>(entityId);

      }

但我不想为每个动作(创建,更新,查询等)编写using()语句。
是否有任何设计模式或其他方式将其编写为更通用且没有重复使用代码中的()语句?

提前感谢

1 个答案:

答案 0 :(得分:1)

您应该打开会话一次以处理请求。会议的想法是,它为你减少负荷保持了很多状态。

特别是,每个db操作打开一个会话可能是一个坏主意。

常见的情况是在您启动请求时打开它,并关闭&amp;结束时保存更改。

这方面的一个例子可以在这里看到:

https://ayende.com/blog/4101/do-you-need-a-framework