1

私はADO.NETを使用しています.DALとBALを作成しました.構造は次のとおりです.

DAL
   -POCO(Table to Entities mapping)
   -Repository (Add, Delete, Edit, Select, Search)

BAL
   -POCO(DAL to Entities mapping where Entities are complex type here)
   -BusinessManager(Validation and Business rules)

サービスを使用して BAL を公開します。また、Web、ウィンドウ、モバイルなどの複数のアプリケーションがこの BAL を消費します。

SQL トランザクションをどこから開始すればよいかわかりません。複雑なエンティティを作成する責任者。

たとえば、複雑なエンティティは

   Entity
     -Entity Type
     -Contacts
     -EmployeesReporting
     -ReportingTo

エンティティを作成する必要があるのは誰ですか? BALかDALか。SqlTransactions はどこから開始する必要がありますか? 私はストアド プロシージャのサポーターであり、リクエストごとに 1 つのデータベース接続を使用することを好むため、これらのエンティティで遅延読み込みをサポートするにはどうすればよいですか

4

1 に答える 1

0

リクエストごとに1つのデータベース接続を使用したいというあなたの願望が、遅延読み込みをサポートしたいというあなたの願望にどのように適合するかはわかりません。

遅延読み込みのポイントは、オブジェクトグラフの特定の部分を最初に読み込むときに実体化する必要がないことです。また、プログラム実行の後のある時点でそれらの部分を読み込む必要がある場合とない場合があります。

そのニーズを満たすために何らかの方法で接続を予約すると、貴重なリソース(DB接続)が非常に無駄になります。

オブジェクトグラフはビジネスアクセスレイヤーで使用されているため、最初に具体化されなかったオブジェクトグラフの部分は、要求をインターセプトして使用可能にし、オンデマンドで生成できるように表現する必要があります。ビジネスレイヤーにプロキシを配置し、DALをアクティブにして、オブジェクトグラフの欠落している部分をオンデマンドでフェッチするEFソリューションは優れたソリューションです。

于 2012-06-10T15:59:35.290 に答える