最近、ViewModel とその利点について読んでいました。なぜそれが必要なのか理解できますが、質問は、同じオブジェクト (つまり Person クラス) に対して 2 つのクラスがある場合、コードを冗長にしませんか? また、基本クラス モデルとビュー モデルに同じ数のプロパティがあることを確認する必要があるため、将来の変更が少し難しくなることはありませんか? たとえば、 Person というテーブルがあるとしましょう
- ID
- 名前
- 色
NHibernate のマッピングを作成するための hbm を作成しています。次のモデルクラスがあります
public class Person {
public int ID {get;set;}
public string Name {get;set;}
public string color {get;set;} }
私が正しければ、ビューモデルクラスは次のようになります
public class PersonViewModel {
[DisplayName("Full Name")]
public string Name {get;set;}
[DisplayName("Favourite Color")]
public string color {get;set;}
}
まず、データベース内の同じオブジェクトを参照する 2 つのクラスがあります。1 つのクラスは DB 用に使用され、もう 1 つはビュー用に使用されますが、まったく同じメタ データを持つ 2 つのクラスがまだあります。次に、データベースに新しいフィールドを導入する場合、ベース モデル クラス、ビュー モデル クラス、および HBM ファイルの 3 つの場所に追加する必要があります。
間違っている場合は修正してください。これをコードの最適化またはベスト プラクティスと呼ぶにはどうすればよいでしょうか。