エンティティフレームワーク4をデータレイヤーとして使用し、エンティティをWCFまたは別のメカニズムを介して別の層に送信し、エンティティを更新して、更新/削除/挿入のために送り返す機能が必要な場合自己追跡エンティティまたはpocoオブジェクトを使用するのが最善ですか?
可能であれば他のレイヤーのエンティティフレームワークに依存したくないので、可能であればPOCOオブジェクトを使用したいのですが、POCOをコンテキストに再接続するのがどれほど難しいかわかりません。
エンティティフレームワーク4をデータレイヤーとして使用し、エンティティをWCFまたは別のメカニズムを介して別の層に送信し、エンティティを更新して、更新/削除/挿入のために送り返す機能が必要な場合自己追跡エンティティまたはpocoオブジェクトを使用するのが最善ですか?
可能であれば他のレイヤーのエンティティフレームワークに依存したくないので、可能であればPOCOオブジェクトを使用したいのですが、POCOをコンテキストに再接続するのがどれほど難しいかわかりません。
これはあまりにも多くの質問の組み合わせであり、それらのほとんどはすでに SO で質問されています。
STE を使用しても、上位層が EF に依存することはありませんが、2 番目のリンクで説明されているように、STE はすべてのアプリケーションのソリューションではありません。STE には他にもいくつかの制限があります。たとえば、サーバー側でも遅延読み込みを使用できない、同じキーのエンティティがコンテキストに既に存在する場合は変更を適用できないなどです。
POCO と WCF を使用するということは、切り離されたエンティティで作業することを意味し、何が変更されたかを EF に伝える必要があります。これは、単一のエンティティを更新する場合は簡単で、単一のエンティティからいくつかのフィールドのみを更新することもできますが、エンティティ グラフを更新する場合、特にクライアントでリレーションを削除できる場合は非常に複雑になる可能性があります (この場合、最も簡単な方法は最初にエンティティ グラフをロードし、受信した変更をアタッチされたエンティティにマージします)。