Silverlight (MVVM, Prism) + службы данных WCF + Context.UpdateObject = сущность, не отслеживающая контекст

Silverlight 4 с Prism (шаблон MVVM). Я создаю фильтр, который является типом данных из WCFDataService (Entity Framework). Я получаю его из контекста, затем вношу изменения в атрибут и вызываю Context.UpdateObject(filter); Я получаю ужасный «Контекст, не отслеживающий объект».

Поэтому я добавляю try/catch, который делает это перед вызовом метода обновления: context.AttachTo("Filters", f); Это работает для элементов, которые никогда не извлекались из базы данных раньше времени, но не работает с «другим объектом с тем же ресурсом Uri» для объектов, уже известных контексту (недавно использованных).

Так что это? С одной стороны уже отслеживает, а с другой нет? Я бы хотел иметь возможность снова просто вытащить его из context/db, но в Silverlight все асинхронно. Я был бы в той же лодке, что и сейчас.

Идеи?


person CraigF    schedule 06.04.2011    source источник
comment
Если вы говорите, что я понял это из контекста, как вы это поняли? (Я предполагаю, что вы говорите о рассматриваемом объекте фильтра.)   -  person Vitek Karas MSFT    schedule 07.04.2011


Ответы (1)


Я совершил ошибку, передав один и тот же контекст данных. Создание нового для конкретной цели решило проблему (по одному для каждого типа CRUD).

person CraigF    schedule 07.04.2011
comment
у вас есть образцы (CRUD), созданные Prism - MVVM - person Sankar M; 09.04.2012