1
繼承人我的方案:我擔心SqlCeSyncClient應用刪除,然後插入,然後更新。我有一些情況下,一行可能會從另一個表中取消引用,然後被刪除。例如,想象一下:同步框架刪除不在客戶端應用
我有兩個表;客戶和區域,其中Customer.Area使用外鍵約束引用Area.Name
insert into Area values('Australia')
insert into Customer values('customer1','Australia')
- 發生同步。客戶端獲得2個插入。
update Customer set Area = 'New Zealand' where Area = 'Australia'
delete from Area where Name = 'Australia'
- 發生同步。客戶端得到1更新和1刪除
SqlCeClientSyncProvider嘗試應用刪除第一個,它由於客戶端上的參照完整性約束而無法執行。
我的第一個問題是:爲什麼地球上的微軟代碼讓SyncClient進程在刪除所有參照完整性規則時首先刪除了FIRST?他們不應該刪除LAST嗎?
我的下一個問題是:我設法通過檢查代碼並自己編寫整個ApplyChanges方法來顛倒順序......但是即使當我這樣做時刪除也沒有應用。數據集中是否存在某些內部事物,這意味着您無法更改處理順序?