1

Code-First で Entity Framework を使用する場合、データベース データを呼び出すときのベスト プラクティスは何ですか?

MVC で Entity Framework を使用するのはこれが初めてで、DataLayer でモデルが自動的に構築されることに気付きました。MVC UI 内に基本的なモデルもあり、ビュー内のデータを操作および表示できます。現在、ワークフロー レイヤーを使用してデータを取得し、データベース モデルを UI モデルに AutoMap してデータを表示しています。

これはベストプラクティスですか?UI モデルの代わりに Entity Framework モデルを使用する必要がありますか? または、これはきれいに行うことさえ可能ですか?

この問題に関する情報をいただければ幸いです。

4

2 に答える 2

4

それは本当にあなた次第です。ビュー モデルにも同じ EF エンティティを再利用したい場合。どうぞ。個人的には、しないほうが好きです。これは、通常、データに格納されているものとは関係のない一連のプロパティをクラスに追加することになるためです。NotMapped次のような属性を使用できることを知っています。

[NotMapped]
public string MyExtraProperty { get; set; }

しかし、私はそうしないことを好みます。さらに、プロパティにその他の属性を追加すること[Display]になり、気付かないうちに、データ固有の属性と UI 固有の属性の両方で装飾されたものになり、注意しないと面倒になる可能性があります。

私にとってはそうです。私は次のものを持っています:

  1. ドメインエンティティ
  2. モデルを見る
  3. サービス/ファサード/リポジトリ

コントローラーはリポジトリを呼び出してドメイン エンティティを取得し、それを表示用のビュー モデルに変換します。

私はそれがよりクリーンなアプローチだと思いますが、おそらくそれは私だけです.最も重要なことは、コードの一貫性と明確さのために、1つの方法を選択してそれに固執することですが、どちらの方法も受け入れられます..あなたのボート」彼らが言うように...

于 2013-03-14T04:53:22.750 に答える
2

EF によって作成された POCO は、モデルとして使用されることになっています。一般的な考え方は、データベースへのアクセスを提供する EF があるということです。LINQ や拡張メソッドを使用して EF をクエリし、WPF でバインドして UI に表示するオブジェクトまたはオブジェクトのコレクションになります。それはもちろん、古い WinForms ではなく WPF を使用している場合です。経験から言えば、テクノロジーに慣れると、プロセスは非常に合理化されます。これが、非常に基本的なセットアップが機能する方法です。

これを行うためのより高度な方法は、Model-View-ViewModel (MVVM) のようなアーキテクチャと、場合によってはリポジトリ パターンをミックスに追加することです。この時点で、複雑さが増しますが、コードとプレゼンテーションをより適切に分離できます。

あなたが使用している MVC のフレーバーと、上記の MVC をどのように組み合わせることができるかはわかりませんが、EF がどのように機能することを想定しているかについて詳しく知りたい場合は、上に挙げたテクノロジを調べる必要があります。 .

于 2013-03-12T17:04:25.660 に答える