1

私はその印象を受けています

  • POCO を使用した EF: 独自の POCO をモデル (.edmx) のエンティティにマップできます。
  • EF コードのみ: edmx/モデル デザイナーなし(つまり、CSDL/SSDL/MSL (まとめて EDMX) メタデータ)。まだ POCO ですが、マッピング、関係、ナビゲーションなどはすべて手動でコーディングされています (したがって、コードのみの説明)。

この 2 つの概念の説明が (多かれ少なかれ) 正しい場合、誰かが POCO で EF の代わりにコードのみを行う必要があるのはなぜですか?

両方とも POCO を実行していますが、2 つ目は手動でマッピングを行う必要があるという余分な負担がありますか?

4

5 に答える 5

3

jfar の回答に追加する唯一のことは、Code-Only ではマッピングを作成する必要がないということです。

ほとんどの場合、マッピングは慣習によって推測できます。

于 2009-11-29T17:01:57.250 に答える
3
  1. XML を苦労せずに手動でマッピングを記述したい場合にのみ、コードが最適です。また、edmx デザイナーは、モデルが 50 個ほどになると扱いにくくなります。そのように使用するのは負担です。

マッピング XML 内で問題が発生した場合、XML を掘り下げて必要な修正を行うのは PITA です。また、特定のシナリオで xml を手動で編集し始めると、デザイナーが壊れます。

詳細はわかりませんが、EF1 のデザイナーは利用可能なすべてのマッピング オプションをサポートしていませんでした。EF4 デザイナーにはいくつかの改善点があります (一方向の関係が思い浮かびます) が、手動マッピングと同等の機能があるかどうかはわかりません。

  1. はい。
于 2009-11-28T23:00:58.960 に答える
1

ビューの事前生成に関するポイントは重要です。Microsoft がコードのみの事前生成を提供する意図があるとは聞いていません。誰かが違うことを知っているなら、投稿してください。

EF4 と NHibernate のどちらを使用するかの調査の一環として、400 個のテーブルに対してコードのみを使用しましたが、ビューの生成に 80 秒の初期遅延があります。デザイナーを使用する場合とまったく同じですが、デザイナー ビューを事前に使用すると生成が可能になり、遅延が 10 秒に短縮されました。モデルの分割に満足できず、約 75 を超えるテーブルがある場合は、コードのみに移行しないでください。

于 2010-12-15T22:41:19.910 に答える
0

現在、Code-Onlyではビューを事前生成できるとは思わないため、パフォーマンスが低下する可能性があります。ただし、これはリリース前に変更される可能性があります。

于 2009-11-30T18:32:38.407 に答える
0

言及されていない他のことは、コードのみを使用すると、構文の完全なコンパイル時チェックが得られることです。ビジュアル デザイナーを EDMX と共に使用している場合、コンパイル時のチェックが行われますが、制限があります。大規模なモデルの場合、EDMX は非常に扱いにくくなり、CSDL、SSDL、および MSL を手動で記述することが、XML マッピングを使用して非常に大規模なモデルを管理する唯一の適切な方法です。マッピングを手動で管理する場合、コンパイル時のチェックは行われません。

コードのみを使用すると、操作する必要があるエンティティが数百または数千ある場合でも、あらゆるサイズのモデルをコンパイル時に完全にチェックできるという利点があります。また、アセンブリとさまざまな種類の xml ファイルが混在するのではなく、最終製品がすべてコンパイルされたアセンブリであるため、「混乱」も少なくなります。

于 2010-07-11T01:45:38.093 に答える