Первоначально я думал, что это проблема INotifyPropertyChanged / Binding, потому что я не уверен, как отладить часть Silverlight. Поэтому мне пришлось поместить окно сообщения в цикл foreach и просмотреть значения после того, как данные были возвращены таким образом. Оказывается, у меня возникают проблемы с получением обновленных данных из сервиса. Я использую сервис, чтобы сделать некоторые обновления данных на сервере, и когда он получает ответный вызов, перезагрузите данные. Эта часть службы возвращает правильные данные (я проверил, используя точку останова, чтобы я мог посмотреть, какие данные хранятся в результате). Но сторона Silverlight не получает правильные данные. Вот соответствующий код.
public IQueryable<OurClass> GetItems(string condition)
{
var result = from items in context.OurClass
where item.value == condition
select item;
return result; //had my breakpoint here and the values were the correct updated values
}
/
Context.Load<OurClass>(Context.GetItemsQuery(condition)).Completed += new EventHandler(Context_LoadCompleted);
/
private void Context_LoadCompleted(object sender, EventArgs e)
{
IEnumerable<OurClass> result = ((LoadOperation<OurClass>)sender).Entities;
//This is where I put a MessageBox to view the returned results and the data was different
//than what was contained in the other result
}
Есть идеи, что может вызвать это? Что я должен смотреть дальше?
EDIT:
В некоторых примерах данных OurClass.OurProperty будет равняться «Test» на стороне сервера, но как только он будет получен на клиенте, он будет равняться «Development», который был старым значением. IEnumerable будет хранить только что добавленные записи, а не удаленные. Все, что существовало ранее, будут содержать старые значения свойств, а не новые значения.