Ограничьте поле, которое синхронизируется - PullRequest
0 голосов
/ 13 июля 2010

Я создаю приложение, которое работает на устройстве Windows Mobile.Я использую Microsoft Sync Framework для синхронизации базы данных Sql CE с основной корпоративной базой данных.

Вопрос в том, как ограничить синхронизируемые поля?В рассматриваемой таблице есть стопки полей, но мне нужно отобразить только несколько из них на мобильном устройстве, и репликация выполняется только одним способом (с сервера на мобильное устройство), поэтому проблем не должно быть.Я видел этот похожий вопрос, но там не так много информации.Кто-нибудь может дать мне больше советов о том, как этого добиться?Я предполагаю, что это очень распространенное требование.

Кроме того, кто-нибудь знает, могу ли я использовать Sync Framework версии 2.0 или мне нужно придерживаться 1.0.У меня было ощущение, что 2.0 не поддерживает Windows Mobile, но я не уверен.

Приветствия
Оценка

1 Ответ

2 голосов
/ 11 августа 2010

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

Во-вторых, изменения во включенных (не уверен, что это слово?) Столбцах также могут инициировать загрузку этой строки, поскольку по умолчанию отслеживание изменений выполняется по строкам. Вы можете изменить это, установив флаг Track_Columns_Updated

ALTER TABLE Employee
ENABLE CHANGE_TRACKING
WITH (TRACK_COLUMNS_UPDATED = ON)

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

...