0

Entity Framework の上でサービス/リポジトリ レイヤーのデザイン パターンを使用しています。クエリが 2 つの異なるエンティティに関するデータの融合を返すようになるまでは、すべて問題ありませんでした。

例として、 と の 2 つのエンティティがDocumentありShoppingBasketItemます。これで、 aDocumentServiceと a の2 つのサービスができましたShoppingBasketService。最初に、ユーザーの検索に基づいてドキュメントをリストしました。しかし後で、ユーザーのショッピング バスケットに既に入っているドキュメントを強調したいと思いました。そのため、ドキュメント サービスはショッピング バスケットの概念を認識する必要があります。

本当は、ドキュメント サービスがショッピング バスケットとは何の関係も持た​​ないようにしたかったのです。

だから私の質問は、これは良いアプローチですか?DocumentBasketServiceそれとも、ドキュメントや買い物かごの情報に関するクエリを処理する新しいサービスを作成する必要がありますか?

4

2 に答える 2

0

うーん、懸念事項の明確な分離を維持する答えを思いついたかもしれません。

ドキュメント ID のリストをパラメーターとして受け入れるドキュメント サービスに新しいメソッドを追加しました。これらの ID は、ユーザーのショッピング バスケットに既に存在するドキュメントです。次に、サービスはドキュメントを強調表示するだけです。たとえば、ドキュメントにプロパティを設定して、ドキュメントが既にユーザーのショッピング バスケットに入っていることを示します。

このように、ドキュメント サービスはショッピング バスケットにクエリを実行せず、実際にはショッピング バスケットについて何も知りません。

したがって、コントローラー アクションを要約すると、ショッピング バスケット サービスが呼び出され、既にユーザーのショッピング バスケットにある ID のリストが取得されます。次に、ID のリストを渡してドキュメント サービスの get documents メソッドを呼び出します。

于 2013-01-03T10:38:13.467 に答える