Создание ОСА со службой синхронизации с использованием динамического имени таблицы
Я работаю с приложением ОСА на основе базы данных SQL-сервера и базы данных клиента SQL CE. У каждого пользователя есть своя таблица в базе данных на сервере SQL. Таблица каждого пользователя имеет одну и ту же схему, но может иметь разные данные. Я хотел бы сделать синхронизируемое имя динамически устанавливаемым в клиентском приложении на основе имени таблицы их БД SQL-сервера (которое устанавливается как userID + "__usersdatatable").
Служба синхронизации работает без проблем, когда я не пытаюсь что-либо изменить. Моей последней идеей было изменить SyncTable.TableName = "jsmith_usersdatatable"; в LocalDataCache1SyncAgent.cs в методе oninitialized(). Однако я получаю следующую ошибку:
"Невозможно инициализировать клиентскую базу данных, поскольку схема для таблицы 'zlentz_GOBOS' не может быть получена методом GetSchema() объекта DbServerSyncProvider. Убедитесь, что вы можете установить соединение с клиентской базой данных и что либо свойство SelectIncrementalInsertsCommand, либо SelectIncrementalUpdatesCommand свойство SyncAdapter указано правильно."
Короче говоря, идея заключается в том, что каждая ОСА должна синхронизироваться с другой таблицей (двунаправленной). Я, очевидно, не эксперт по SQL или службам синхронизации, поэтому совет будет полезным.:) Заранее спасибо!
1 ответ
Узнав больше о Sync Framework, стало очевидно, что мне нужно работать вне мастера.
Для будущих зрителей очень полезна следующая ссылка:
http://www.codeproject.com/Articles/18027/Take-Data-Offline-Using-Microsoft-Synchronization