2

このトピックに関する多くの投稿で、私の質問に答えない非常に単純な例に出くわしました。

ドキュメント テーブルとユーザー テーブルがあるとします。ADO.NET で記述された DAL には、すべてのドキュメントをいくつかの基準で再試行する方法があります。今、私はこのリストを作成者の名前とともに表示する必要がある UI を持っています。

私は、JOINステートメントを含むDALの1つのメソッドでそれを行ったことを知っています。ただし、非常に複雑なメソッドを使用するたびに、DB に対して 1:1 をマークしないオブジェクトにカスタム マッピングを行う必要があります。

別のレイヤーに入れる必要がありますか?もしそうなら、私は結合クエリから結果を反復し、各ドキュメント作成者にクエリを実行する必要があります。. . 意味をなさない... (パフォーマンス)

そのようなシナリオの最善のアプローチは何ですか?

4

2 に答える 2

1

あなたのUIのために私の提案は、ユーザーのデータと対応するドキュメントのリストを保持するdto(それらのmvp/mvcの人​​々のためのビューモデル)を持つことです。

カスタム マッピングは常に存在するため、ここで Automapper を参照して、マッピングの手間を軽減することをお勧めします。

于 2010-06-08T11:43:29.050 に答える
0

独自のカスタム データ アクセス レイヤーを作成しているときに、過去に同じことに遭遇しました。オブジェクトを 1 対 1 でデータベースにマップしたいが、多くの場合、内部結合データを取得するカスタム関数を 1 つだけ作成する必要があります。これらのカスタム アクションを独自のレイヤーに配置することはありません。

時々、私が行ったことは、多数のテーブルから情報を結合するグリッド、コンボ ボックスなどのデータを取得する役割を担う一般的なクラスを作成することでした。このクラスは、取得した結果を含むカスタム オブジェクトを返します。自動カスタム マッピングを実行するツールに満足できない場合は、独自の自動マッピング クラス ビルダー ユーティリティを作成することをお勧めします。

アプリをデータ アクセス、ビジネス、および UI レイヤーに分割している限り、正しい方向に向かっていると思います。

于 2010-06-08T14:15:28.697 に答える