私は現在、70-516試験(データへのアクセス)のセルフペーストレーニングキットを読んでおり、EntityFrameworkに関する章にいます。
私はそれがObjectContextについて話し、クリーンアップのためにIDisposableを継承しているところです。これは、私が研究するときに正確な答えを得ることができないように思われるいくつかの質問をもたらしました。私は物事がどのように機能するかを理解しようとしています。
シナリオ:WCFRia とEntityFrameworkを使用してSilverlightアプリケーションを作成し、MVVMLiteパターンを使用しました。EDMXを作成し、FamilyServiceというドメインサービスを作成しました。これは、SilverlightアプリケーションでFamilyContextとして使用します。FamilyMemberテーブルからデータを返すGetFamilyMembersというメソッドを作成します。
[EnableClientAccess()]
public partial class FamilyService : LinqToEntitiesDomainService<FamilyEntities>
{
public IQueryable<FamilyMember> GetFamilyMembers()
{
return this.ObjectContext.FamilyMembers;
}
}
私のViewModelでは、FamilyContextのインスタンスを作成し、クリーンアップ時にnullにします。
1)FamilyContextオブジェクトをnullにすると、サーバー上のObjectContextに対して何かが行われますか?ドメインサービスで手動で作成したり破棄したりすることは決してないので、これを尋ねます。
2)Entity Frameworkでクエリを実行すると、データがキャッシュされることを理解しています。RIAシナリオでは、データはクライアントアプリケーションのFamilyContextにキャッシュされますか、それともサーバーのObjectContextに引き続き存在しますか?アプリケーションの各ビューモデルが独自のFamilyContextのインスタンスを作成するため、ObjectContextがキャッシュを保持しているかどうかだけが気になります。クリーンアップによってビューモデルが軽量化されても、キャッシュを利用できるかどうか疑問に思います。
前もって感謝します。