WCF RIA 服務 (十四)- 數據 4

 
如何自定義解決數據併發性衝突
WCF RIA Services框架把原值和更改後的值一起傳遞給數據訪問層。這就允許數據訪問層在提交數據更改之前檢測數據併發性衝突。數據訪問層是通過檢測數據源中 的當前值是否與Domain操作中檢索到的值一致來判斷衝突的。
我們可以爲一個特定的實體自定義如何解決數據併發性衝突,這個方法在衝突確認時被 調用。在這個方法中,可以指定步驟來解決衝突。這個方法必須匹配作爲解決衝突的方法所需的簽名。格式應如下:

  • 返回一個 Boolean值。
  • 有個Resolve名字前綴或有ResolveAttribute。
  • 接受四個參數 (current entity, original entity, store entity, 和一個指定是否本操作是個刪除操作的值)

自 定義解決數據併發性衝突

  1. 在domain service中,添加一個匹配做爲解決方法所需簽名的方法。
  2. 在 這個方法中添加解決衝突的代碼。下面的代碼示例了一個名爲ResolveProduct的方法,這個方法在衝突發生時會從domain操作中合併數據。 這個自定義的衝突解決代碼,通過使用ResolveOption枚舉值來指定合併數據。

如 何向Domain service添加顯式事務
可以在Domain Service中添加顯式事務,來執行一組變化。
創 建一個顯式事務
  1. 在項目中,添加對System.Transactions程序集的引用。也可以從 [program files]/Reference Assemblies/Microsoft/Framework/.NETFramework/[version]/System.Transactions.dll 找打。
  2. 在Domain Service中,重載Submit方法。
  3. 創建一個TransactionScope,它 打包了對基類中Submit方法的調用。
  4. 在完成事務之前,檢查ChangeSet對象的HasError成員屬性。示例如下:
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章