4

使用 PetaPoco,我应该如何处理Database类的创建?我的应用程序可能会使用各种存储库(不完全是 DDD 存储库,更像是网关存储库)来封装查询。

由于我将有多个存储库需要访问同一个数据库连接,我正在考虑创建一个基类,在构造函数中创建数据库类并调用Dispose其析构函数,并在所有派生类中简单地调用这个对象,所以我认为在这种情况下我不需要 using 块(因为当类超出范围时,它将关闭数据库本身)。

我还考虑在Application_BeginRequest方法上在 global.axax 中创建数据库对象,以便它在每个页面上都可用,但我不完全确定它是如何工作的(我想我需要某种DatabaseManager实例化它的类?我只见过这种方法与 NHibernate 和 RavenDB 之类的东西一起使用),这似乎将数据库对象的使用推送到 ASPX 页面本身,而不是通过存储库/数据层类,这看起来很臭。

任何建议这些方法中的哪一种(如果有的话)最有效?我还看到 PetaPoco 支持“共享连接”,所以我也想看看这是否可以最大限度地减少与数据库的打开连接数?

4

1 回答 1

4

我通常Database为每个请求创建一个。它是一个轻量级的对象。要么在ActionFilter使用Controller基类。

于 2012-05-20T03:32:25.630 回答