Проблема с кешированием Silverlight 4? - PullRequest
0 голосов
/ 11 января 2011

У меня сейчас странная проблема с кэшированием. Когда я загружаю свои данные изначально, я возвращаю все данные в указанные даты, и мой график выглядит следующим образом:

alt text

Затем я фильтрую данные, чтобы вернуть подмножество исходных данных для того же диапазона дат (не то, чтобы это имело значение), и я получаю следующее представление моих данных:

alt text

Однако я периодически получаю следующее, когда обновляю то же представление filterd данных:

alt text

Можно видеть, что кэшируются не все данные, а только некоторые из них, т.е. за 12 декабря 2010 года и 5 декабря 2010 года (здесь не показано). Я посмотрел на мои запросы, и правильные данные извлекаются. Только на уровне представления, то есть на Mainpage.xaml.cs, эти ошибочные данные, по-видимому, существуют.

Я прошел через код, и данные распределены по всем уровням, кроме уровня представления. Кто-нибудь испытывал это раньше? Есть ли какое-то кэширование в фоновом режиме, которое хранит эти данные в фоновом режиме, поскольку браузер отключил кэширование?

Я использую LoadOperation в методе обратного вызова в методе Load DomainContext, если это помогает ...

Ответы [ 2 ]

1 голос
/ 11 января 2011

Я думаю, что я решил это, и пока все хорошо. Фактические данные, которые нам нужны, не имеют уникального атрибута для каждой возвращаемой строки. Следовательно, в итоге мы использовали sql row_number (), чтобы получить то, что, по нашему мнению, было бы непротиворечивым уникальным идентификатором. Тем не менее, это не так, и, следовательно, мы получаем эти проблемы, хотя это не полностью объясняет, почему одни и те же 2 части данных последовательно возвращались.

Во всяком случае, в итоге я добавил случайное число к возвращенному «уникальному» идентификатору, и это помогло.

0 голосов
/ 11 января 2011

Да, я видел эту ошибку раньше, но мне не удалось должным образом отследить причину в исходном коде инструментария. Кажется, что при определенных условиях серии диаграмм не удаляются все визуальные элементы существующей серии, поэтому некоторые из них становятся сиротами. Результатом является «остаточное изображение» точек данных, которое просто не исчезнет.

У меня нет конкретной работы по этому вопросу. Одна из возможностей, поскольку вы вносите изменения в метод обратного вызова, - это использование Dispatcher.BeginInvoke для перемещения любых изменений коллекции в поток пользовательского интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...