2

私が取り組んでいるプロジェクトのリファレンスとして Pro Dinner ソリューションを検討してきましたが、これはおおむね適していると思います..しかし、プロジェクトの構造がよくわかりません..単一のエンティティを表す

  • コア – リポジトリとサービスの poco エンティティとインターフェイス
  • データ – データ アクセス レイヤー。リポジトリの実装、EF5 Code First マッピング、および DbContext が含まれます。
  • WebUI – Entity から Input (ViewModel) および後方へのマッピングに使用されるすべての ViewModel および Mapper クラス、mvc コントローラー、ビュー、画像、スクリプト、および一部のブートストラップ コード

だから私が見ることができるものから、あなたがPersonクラスを持っていたとしましょう..あなたは..

Core の Person エンティティ、Data の Person エンティティ、WebUI の PersonViewModel ..

これは正しいです?私は何かを逃していますか?

Core に Person エンティティを 1 つだけ含める方がよいでしょうか?

誰か別の提案があれば教えてください:)

ありがとう。

4

1 に答える 1

4

ソース コードとそのアーキテクチャを確認するために、すぐに ProDinner をダウンロードしました。

すべてを詳細に調べたわけでも、アプリケーションを実行したわけでもありません。

見た目からして、あなたの質問に答えるにはPerson、コア内にエンティティを作成するだけでよいと理解しています。

データレイヤーPerson内にエンティティを作成する必要はありませんが、 (たまたまデータ レイヤー内に存在する)内部にエンティティを追加する必要があります。DbSet<Person>DbContext

ViewModel に関しては、ViewModel が UI の表現であることを理解することが重要です。

たとえば、Personエンティティに 25 のプロパティがあるとします。ビューがこれらの 25 個のプロパティを自動的に表示 (または使用) するということですか?

答えが「はい」の場合は、View をPersonエンティティに直接強く入力するか、 PersonViewModelを作成して Poco から 25 個のプロパティをその PersonViewModel にコピーすることができます。次に、View をこの PersonViewModel に強く型付けします。

一方、ビューが 25 個のプロパティのうち 10 個のプロパティのみを表示 (または使用) することを計画している場合は、PersonViewModel を作成し、それらの 10 個のプロパティのみを作成します。

前に言ったように、ViewModel は UI (View) の表現であるべきなので、View が 10 個のプロパティを表示/使用することを知っていれば、25 個のプロパティを保持する PersonViewModel を持つことは無意味です。

すべての個人またはチームが、View を Poco に直接強く型付けすることを好むわけではありませんが、それが機能することを覚えておいてください。この選択はあなた (またはあなたのチーム) 次第です。

これが明確になることを願っています。

于 2014-03-18T12:19:19.047 に答える