私はPOCOについて知っていますが、最近、自己追跡エンティティについて聞いたことがあります。POCOとSTEの違いを誰でも説明できますか
1 に答える
自己追跡エンティティは、実際のエンティティクラスのゲッター/セッターに永続性ロジックを持つエンティティです。要するに、彼らは自分自身を救う方法を理解している実体です。
これは、ストレージのみのエンティティである(つまり、内部ロジックがない)POCOエンティティ(Plain Old CLR Objects)とは異なります。
これらの処理方法とのEFの主な違いは、EFが変更を検出する方法にあります。STEはEFに変更について通知し、EFは通常、追跡グラフを使用して、接続されたエンティティの変更を検出します。
注: STEは、EFの最近のバージョンでは非推奨になっています
また、POCOとEFを使用するSTEの間には、POCOプロキシエンティティと呼ばれる少しの中間点があります。このEntityFrameworkは、POCOクラスのプロパティをオーバーロードし、変更が発生したときにEFに通知するプロキシを作成します。これを行うには、クラスのすべてのプロパティを仮想化する必要があります。POCOプロキシは、特定のシナリオで、特に追跡グラフが大きい場合に、パフォーマンスが向上する可能性があります。ただし、すべての場合でパフォーマンスが向上するわけではありません。POCOプロキシに関するArthur Vickers(EFから)の投稿を参照してください。
POCOプロキシはSTEを置き換えることを目的としているというのが私の理解です。