質問

私は、製品および支払人のコレクションを得ました。支払われている製品は、製品上の列挙型によって決定されるholdings.How支払者が支払者の収入によって、またはそれぞれの支払者の値によって、3つの異なる方法での製品のために支払う、どちらかが、手動で割合を設定することができます。

私の永続化層では、私は、製品が各支払者が支払わなければならない割合を指定して、手動で支払われた場合の製品と支払者間の多対多のクラスである三つのクラス、製品、支払人、およびProductManuallyPaidを得ました。

どのように私はビューにこれをマップする必要がありますか?私は(支払人への参照で構成されます、製品への参照と支払者が支払う必要があります正確な金額)の新しい多対多のクラスを持っていたいですか?

私は計算はサービス層で行われる必要がありますね、しかし、サービス層は、付属の新しい多対多のクラスと製品/支払人のViewModelに/ DTOバージョンを返すべきか、この後から処理する必要がありますか?それは後で扱われるべき場合には、エンティティは、その新しい多対多クラスのリストが含まれている必要がありますが、永続化層では無視すること?

役に立ちましたか?

解決

DDDを使用すると、オブジェクト・モデルの設計ではなく、ER /データモデルに真っ先に焦点を当てて思考のラインを採用すべきであることを示唆しているかもしれません。私はあなたのデータモデルは(多対多のテーブルなどに)なっているはずですが、多分あなたは、オブジェクトモデルは、最初にどのように見えるかを検討すべきかについて考えている参照してください。そのオブジェクトモデルは、ドメイン(ビジネスロジック、ビジネス行動)を反映してその後、データベースにそのオブジェクトモデルをマッピングする方法を考えます。

たとえば、それは支払いのコレクションを持っている製品を返すために、より多くの意味をなすかもしれません。そして、それぞれのお支払いは、支払人エンティティへのリンクを持っています。支払人リンクはあなたがおそらくそのリンクにアクセスしたりすることになるでしょう支払人情報のコピーを持っていることが、あなたのデザインに応じて、必要な情報/値との完全な支払人エンティティをロードする方法を知っています。 また、各支払人のインスタンスは、支払いのコレクション(でも上記と同じクラスタイプ?)製品に戻るリンクしている可能性があります。

このデザインは、オブジェクト指向のプリンシパルをより良く利用し、方法リレーショナルデータベースのかもしれないよりも良いドメインを記述します。また、これらのオブジェクトは、ネイティブオブジェクト構造は、すでにあなたが必要なものと論理的にあなたを提供してサービスおよびUI層で扱いやすいかもしれません。すなわち。製品は、支払人を持って支払い、などを持っている..

私は自分自身を考えてDDDに合理的に新たなんです。そして、DDDがあなたをオフに恐怖用語は、エヴァンのこの要約版を見てみましょう前に、本に。それは読んでダウンロードして無料光です。それはちょうどあなたが探している宝石を与える可能性があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top