Мое приложение - это клиент/серверное решение с использованием службы данных ADO.NET. Служба данных выставляет 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);
Это получает много раз выполнены в виде изменений в selectedshow.performancedata.PerformanceID отклика на пользовательский интерфейс.
Все до сих пор. Однако, когда транзакцияSummaryData на сервере обновляется каким-то другим кодом на сервере, клиент продолжает отображать «устаревшие» данные и не замечает обновления. Я предполагаю, что это связано с каким-то кешированием. Отлаживая код, я вижу, как сервер отправляет нужные данные, но запрос LINQ на клиенте продолжает возвращать устаревшие данные. Перезапуск клиента приводит к отображению правильных данных.
Я думаю, что здесь отсутствует что-то очевидное, но я не вижу, как контролировать любое кэширование на клиенте или аннулировать объект без повторного подключения.
Я не могу найти "ObjectTrackingEnabled" собственность на DataServiceContext я использую (не DataContext). –
Упс ... полностью неверно истолковывает первые два предложения. – womp