Sync Framework, фильтр поддельных удаленных строк - PullRequest
0 голосов
/ 24 января 2012

Контекст: я хочу синхронизировать Sql Server с Sql Compact через wcf.Клиент (sqlce) время от времени загружает только обновления с сервера (sql2008).На сервере ничего не удаляется, он только помечается как «удаленный» (точнее, Version == MinValue означает, что он удален),

Проблема: я не хочу, чтобы мои клиенты удалили элементы в своей базе данных.Когда элемент, который находится как на сервере, так и на клиенте, но затем помечен как удаленный (Version = MinValue), я хочу, чтобы этот элемент был полностью удален с клиента, а не просто помечен

Как вы думаете, возможны ли эти сценарии с синхронизацией?рамки и фильтры?

Ответы [ 3 ]

0 голосов
/ 24 января 2012

Sync-Framework использует таблицы-захоронения для этого:
В SyncAdapter вы можете определить таблицу-захоронения, и удаленная строка должна быть перемещена в эту таблицу, что означает, что они все еще доступны (и «удалить» можносинхронизироваться легко), но больше не в «основной таблице».

0 голосов
/ 24 января 2012

если вы просто выполняете мягкое удаление, помечая строки как удаленные, они будут каскадно обновляться для ваших клиентов.

в вашем клиенте, просто удалите все строки, помеченные для удаления, и очистите таблицы захоронения самостоятельно. без какой-либо записи в таблице надгробий эти удаленные строки не будут обнаружены Sync Framework.

Другой вариант для вас - на клиенте: удалить строки, помеченные для удаления, подписаться на событие ChangesSelected поставщика клиента и вручную выполнить цикл по набору данных изменения, чтобы удалить удаленные строки в таблице данных.

или вы также можете перехватить эти строки в событии ChangesSelected поставщика сервера. Вам нужно будет выполнить цикл по набору данных изменений и соответствующему источнику данных, найти все строки, которые имеют флаг удаленных данных, и пометить эти строки как удаленные. они будут применены как удаленные в месте назначения.

см. Образец здесь: http://jtabadero.wordpress.com/2011/03/07/manipulating-the-change-dataset-in-sync-fx/

0 голосов
/ 24 января 2012

Вам необходимо настроить фильтры в службе WCF.

К сожалению, я не могу вспомнить детали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...