8

階層化されたアプリケーションでは、WCF 呼び出しを介してデータベースにアクセスしています。リクエストごとにコンテキストを作成して破棄しています。また、POCOアプローチを使用しています。
私の質問は、純粋な POCO モデル (完全に永続的な無知な POCO) では、リクエストごとにコンテキストを作成および破棄している間 (以前のコンテキストがそのサービス呼び出しで破棄されるため)、変更を追跡することは可能ですか? はいの場合、EF はこの状況をどのように処理しますか? 私が見る限り、2 つのメカニズム (スナップショット ベースの変更追跡とプロキシを使用した通知ベースの変更追跡) ではこれを処理できませんか? そうでない場合、変更を追跡できるようにコンテキストをどのように処理する必要がありますか?

4

3 に答える 3

5

私は言います:

純粋な SOA 環境では自己追跡エンティティを使用しないでください: 自己追跡エンティティは、クライアントが生成されたプロキシ クラスを使用する場合にのみ機能します。

SOA を本通りに行っている場合、クライアントが .Net である、またはそれ以上の .Net 4.0 であるとは期待できません。これは、自己追跡エンティティが機能する唯一のシナリオです。あなたのサービスは、他のクライアントにとって役に立たないでしょう。

Just My 2 cents, よろしく, Koen

于 2010-05-07T11:22:22.083 に答える
3

参照によって生成されたメタデータを使用するのではなく、モデルをクライアントと共有できる場合、自己追跡エンティティは実際にこの問題を解決します。

STEを抽象化し、クライアントからそれらを参照すると、コンテキストから切断された追跡にアクセスできます。

于 2011-07-21T16:22:22.733 に答える
2

残念ながら、EntityFrameworkv1.0ではこれに対する簡単な解決策は見つかりません。多くの議論があり、解決策はほとんどありませんでした。これはEFv1.0でよく知られている問題の1つであり、何らかの方法でこれを処理するために大量のコードを記述しなければならないことになります。

.NET 4.0では、ADO.NETチームは、この問題に取り組むために自己追跡エンティティを導入しました。

于 2010-02-23T23:42:32.897 に答える