使用自定义DomainService的并发

时间:2010-12-27 15:55:37

标签: silverlight concurrency poco domainservices

我创建了一个继承DomainService的类,并且有一个使用System.ServiceModel.DomainServices.Client获取DomainContext的Silverlight应用程序。我还创建了POCO DataContracts,用于DomainServices的Query,Update,Insert和Delete方法。我还有一个ViewModel,它执行所有的LoadOperations。现在,我正处于我的应用程序的一部分,我想在生成的EntitySets中添加新的实体,但我不确定当一个用户创建new并设置Key值时会发生什么;同时另一个用户创建一个具有相同Key值的类似实体。

我在文档中看到使用了ObjectContext,但在我的情况下我无法使用EntityFramework模型生成器。所以我必须手工创建我的数据交换。

所以我想我的问题是,有什么方法可以强制其他silverlight应用程序更新数据库更改?

1 个答案:

答案 0 :(得分:0)

当您对DomainContext进行保存操作时,根据加载行为,它将自动刷新。

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

这里我将LoadBehavior设置为RefreshCurrent。当您进行保存时,RIA会将实体通过网络发送回客户端,并将更改与已在客户端上下文中缓存的实体合并。但我不知道这是否完全回答了你的问题。

相关问题