Параллелизм с пользовательским DomainService - PullRequest
0 голосов
/ 27 декабря 2010

Я создал класс, который наследует DomainService, и у меня есть приложение Silverlight, которое использует System.ServiceModel.DomainServices.Client для получения DomainContext. Я также создал POCO DataContracts, которые используются в методах DomainServices Query, Update, Insert и Delete. У меня также есть ViewModel, который выполняет все операции LoadOperation. И теперь я нахожусь в той части моего приложения, где я хочу добавить новые сущности в сгенерированные EntitySets, но не уверен, что произойдет, когда один пользователь создаст новый и установит значение Key; все время, пока другой пользователь создает похожую сущность с тем же значением ключа.

В документации я видел, что используется ObjectContext, но в моей ситуации я не смог использовать генератор моделей EntityFramework. Поэтому мне пришлось создавать контракты на поставку данных вручную.

Так что я думаю, мой вопрос, есть ли способ заставить другие приложения Silverlight обновляться при изменении базы данных?

1 Ответ

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

Когда вы выполняете операцию сохранения в свой DomainContext, в зависимости от поведения загрузки, он автоматически обновляется.

TicketContext.Load(TicketContext.GetTicketByIdQuery(ticketId),
                                      LoadBehavior.RefreshCurrent,
                                      x =>
                                        {
                                          Ticket = x.Entities.First();
                                          Ticket.Load();
                                          ((IChangeTracking) TicketContext.EntityContainer).AcceptChanges();
                                        }, null);

Здесь я установил для LoadBehavior значение RefreshCurrent.Когда вы сделаете сохранение, RIA отправит объект обратно по сети клиенту и объединит изменения с объектом, уже кэшированным в контексте вашей стороны клиента.Я не знаю, отвечает ли это на ваш вопрос или нет.

...