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

本文关键字:opensession connection 声明 设计模式 | 更新日期: 2023-09-27 18:06:16

我正在使用RavenDB,它需要为每个db动作打开db会话。
例如:
创建代码:

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

GetById代码:

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

但是我不想为每个操作(创建,更新,查询等)编写using()语句
是否有任何设计模式或另一种方式来编写它更通用,没有重复使用()语句的代码?

提前致谢

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

您应该打开一次会话来处理请求。会话的思想是,它为您保留了大量的状态,以减少您的负载。

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

常见的场景是在启动请求时打开它,然后关闭&完成后保存。

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

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