LINQ-SQL を使用して SQL Server データベースに接続する MVC アプリケーションに取り組んでいます。
現在、データをフェッチするときに、LINQ オブジェクトのプロパティをドメイン モデルに渡し、そのドメイン モデルのプロパティをビュー モデルに作成しています。
たとえば、View Model には次のプロパティがあるとします。
public Models.UserModel user { get; set; }
public List<Models.CountryModel> countries { get; set; }
私のドメイン モデルには、私の LINQ オブジェクトとまったく同じプロパティがあり、これらのプロパティを次のようにコピーします。
Models.UserModel user = new Models.UserModel();
user.Username = User.Username;
user.FirstName = User.FirstName;
user.LastName = User.LastName;
user
私のModels.UserModel
オブジェクトはどこにありUser
、ユーザーデータベーステーブルからマップされた私のLINQオブジェクトはどこですか。
私のドメイン モデルは私の LINQ オブジェクトとまったく同じなので、このデータをドメイン モデルに転送する利点はありますか、またはビュー モデルで次のような LINQ オブジェクトを使用しても問題ありませんか?
public User user { get; set; }
public List<Country> countries { get; set; }
ドメイン モデルを使用する利点は何ですか? これは純粋にデータベース LINQ オブジェクトと疎結合するためですか?
ドメイン モデルを使用する利点がある場合、MVC アプリケーション内でこれらをどのように構造化するのが最善でしょうか?
"Models" フォルダー レベル (たとえば、サブフォルダー "DomainModels" と "ViewModels") で完全に分割するか、または一致させる必要があります ("UserEditViewModel.cs" と "UserDomainModel.cs" など)。