私のアプリケーションは、ADO.NET Data Serviceを使用するクライアント/サーバーソリューションです。次のようにデータサービスはtransactionSummaryDataを公開:ADO.NETデータサービスが動的に更新されない
public IQueryable<TransactionSummary> TransactionSummaries
{
get { return MainForm.transactionSummaryData.Items.AsQueryable(); }
}
transactionSummaryDataは、その項目プロパティは以下のように定義された型TransactionSummariesは次のとおりです。クライアント側では
public List<TransactionSummary> Items
、私はLINQクエリにデータバインドいくつかのコントロールを持っていますこれはTransactionSummariesで動作します:
AvailibilityBox.DataContext = (from salesdata in srv.TransactionSummaries
where salesdata.PerformanceID == selectedshow.performancedata.PerformanceID
select salesdata);
これは、選択されたパフォーマンスデータとパフォーマンスの変化が何度も実行されます。 UIをナビゲートするユーザへの応答。
これまでのところすべて良いです。ただし、サーバーのtransactionSummaryDataがサーバー内の他のコードによって更新されると、クライアントは「古い」データを表示し続け、更新を認識しません。私はこれが何らかのキャッシュのためであると仮定します。コードをデバッグすると、サーバーが適切なデータを送信しているのがわかりますが、クライアントのLINQクエリは失効したデータを返し続けます。クライアントを再起動すると、正しいデータが表示されます。
私はここで何かが分かりませんが、クライアント上のキャッシュを制御する方法や、接続を再作成せずにオブジェクトを無効にする方法がわかりません。
私は私が(ないのDataContext)を使用していたDataServiceContextの "ObjectTrackingEnabled" プロパティを見つけることができません。 –
最初の2つの文を完全に誤読しています。 – womp