4

開発時間が短縮される以外に(Visual Studio 2010ベータ2には、私が認識しているPOCOエンティティオブジェクトを構築するためのT4テンプレートがありません)、Entity Frameworkがデフォルトで作成する従来のEntityObjectエンティティを使用することに利点はありますか?MicrosoftがPOCOオブジェクトを構築するためのT4テンプレートを提供している場合、私は誰もが従来の方法を使用したいと思う理由を理解しようとしています。

4

2 に答える 2

6

あなたは同時に2つの質問をしているようです。コードのみとモデルファースト、およびEntityObject親タイプと任意の親タイプ。親のタイプに関係なく、モデルファーストでデザイナーのサポートを受けられます。デザイナーのサポートとは別に、モデルファーストでプリコンパイルされたビューを使用することもできます。これにより、パフォーマンスが大幅に向上します。

エンティティのランタイムタイプは、ランタイムで生成されたサブタイプではなく、期待どおりのタイプであるため、親として持つEntityObjectことは、いわゆる「POCO」(通常は「プレーン」オブジェクトではなくプロキシベース)よりも有利な場合があります。 。

また、LINQサポートが最小限またはまったくない他のORMとは異なり、Entity Frameworkには豊富なLINQサポートがあり、実際のP​​OCOタイプに投影できます。したがって、エンティティの基本タイプを気にすることなく、真に永続性を無視するプレゼンテーションを作成することができます。ORMブラックボックスから出てくるタイプにとらわれることはありません。

EntityObjectデータベースに永続化されるプライベートプロパティを許可します。プロキシタイプを使用するには、それらのプロパティが少なくとも保護されており、仮想である必要があります。したがって、EntityObjectより良いカプセル化が可能になる場合があります。

ちなみに、プロキシを使用することに利点がないことを示唆しようとはしていません。私は、その利点が何であるかについてのあなたの質問に答えようとしているだけですEntityObject

于 2010-01-13T14:00:57.163 に答える
0

唯一のメリットはデザイナーのサポートだと思います。非ポコエンティティを使用することで他の利点を見つけることができません。

于 2010-01-13T12:15:01.423 に答える