0

DomainService を継承するクラスを作成し、System.ServiceModel.DomainServices.Client を使用して DomainContext を取得する Silverlight アプリを作成しました。また、DomainServices の Query、Update、Insert、および Delete メソッドで使用される POCO DataContracts も作成しました。また、すべての LoadOperations を実行する ViewModel もあります。そして今、私はアプリの一部で、生成された EntitySets に新しいエンティティを追加したいところですが、1 人のユーザーが新しいエンティティを作成してキー値を設定するとどうなるかわかりません。別のユーザーが同じキー値で同様のエンティティを作成している間ずっと。

ObjectContext が使用されていることをドキュメントで確認しましたが、私の状況では EntityFramework モデル ジェネレーターを使用できませんでした。そのため、データ契約を手動で作成する必要がありました。

私の質問は、データベースの変更時に他の Silverlight アプリを強制的に更新する方法はありますか?

4

1 に答える 1

0

DomainContextに保存操作を行うと、ロード動作に応じて、自動的に更新されます。

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

ここでは、LoadBehaviorをRefreshCurrentに設定しました。保存を行うと、RIAはエンティティをネットワーク経由でクライアントに送り返し、変更をクライアント側のコンテキストにすでにキャッシュされているエンティティとマージします。しかし、それがあなたの質問に完全に答えるかどうかはわかりません。

于 2011-01-14T14:12:45.500 に答える