ぺたポコで、Database
クラスの作成はどうすればいいの?私のアプリケーションはおそらく、クエリをカプセル化するためにさまざまなリポジトリ (DDD リポジトリではなく、ゲートウェイ リポジトリのようなもの) を利用することになるでしょう。
同じデータベース接続にアクセスする必要がある複数のリポジトリがあるため、コンストラクターで Database クラスを作成し、そのデストラクターで呼び出す基本クラスを作成しDispose
、すべての派生クラスでこのオブジェクトを呼び出すだけでよいと考えていました。このシナリオでは using ブロックは必要ないと思います (クラスがスコープ外になると、データベース自体が閉じられるため)。
また、すべてのページで使用できるように、global.axax でデータベース オブジェクトを作成することも検討しましたが、それがどのように機能するかは完全にはわかりません (それをインスタンス化する何らかのクラスがApplication_BeginRequest
必要だと思いますか?DatabaseManager
このアプローチが NHibernate や RavenDB などで使用されているのを見たことがあります)、データベース オブジェクトの使用をリポジトリ/データ レイヤー クラス経由ではなく、ASPX ページ自体にプッシュしているように見えますが、これは臭いと思われます。
これらのアプローチのどれが最も効果的かについての提案はありますか? また、PetaPoco が「共有接続」をサポートしていることも確認しましたが、データベースへの開いている接続の数を最小限に抑えるために、それも検討したいのでしょうか?