私は新しいプロジェクトを開始しているので、自分のやり方を再評価する時が来ました.
最近、私は 3 層/層プロジェクト (UI、ドメイン、データ) を作成し、各層に独自のモデルを作成しました。DAL には、ドメイン レイヤーによって消費されるデータ エンティティがあり、ViewModel にマップされた UI によって消費されるドメイン モデルにマップされます。
これにより、各レベル (特に UI) である程度の差別化が可能になりましたが、マッピングは圧倒的に面倒で (Automapper が少し役に立ちました)、ドメイン レイヤーとデータ レイヤーは基本的に 1:1 であり、UI ビュー モデルが最も有用でした。
次のプロジェクトのために単純化する方法を見つけようとしていますが、いくつかの提案を使用できます。
編集: そのままで、ドメインレイヤーとデータレイヤーの間で共有されるdtoのセットを持つことを検討しています。これにより、データベース構造にさらに縛られますが、同一タイプ間のマッピングを大幅に節約できます。