如若PetaPoco数据库类中按照要求或每次需要时创建一次?(Should the PetaPoco

2019-09-17 08:31发布

随着PetaPoco,我应该如何处理的创建Database类? 我的应用程序可能会被利用各种信息库(不太DDD库,更像是一个网关库)的封装查询。

既然我有需要访问同一个数据库连接多个存储库,我想使创建数据库类的构造函数,并调用基类的Dispose在其析构函数,并简单地调用所有派生类这个对象,所以我想我不会在这种情况下需要一个使用块(因为当类超出范围就会关闭数据库本身)。

我也算是刚刚创建的global.axax数据库对象,对Application_BeginRequest方法,所以它的每个页面上都有,但我不能完全确定是如何工作的(我想我会需要某种DatabaseManager类实例化它?我只看到这一做法的东西像NHibernate和RavenDB使用)这似乎数据库对象的使用推向ASPX页面本身,而不是通过一个存储库/数据层类,这似乎臭。

任何建议采用哪些方法中,如果有的话,将最好? 我也看到,PetaPoco支持“共享连接”,这样就是我想要的东西,在找,以及尽量减少打开连接到数据库的数量?

Answer 1:

我通常会创建一个Database ,每个请求。 它是一个轻量级的对象。 无论是在一个ActionFilter使用Controller基类。



文章来源: Should the PetaPoco database class be created once per request or every time it is needed?