MS Sync Framework: схема таблицы не скопирована в локальную базу данных - PullRequest
0 голосов
/ 30 ноября 2009

Я работаю с MS Sync Framework 2.0 над моим проектом. Я использую MS SQL Server 2005 в качестве основной БД и SQL CE 3.5 для клиентской БД. Все работает нормально, за исключением того, что схема из основной базы данных не копируется в локальную базу данных.

например: У меня есть таблица со столбцом PK с типом данных uniqueidentifier и значением по умолчанию NEWID (). но когда схема должна быть загружена в локальную базу данных, столбец PK копируется, но значение по умолчанию (NEWID ()) не отражается в схеме локальной БД.

какие-либо решения для этого? есть ли требование?

1 Ответ

1 голос
/ 04 декабря 2009

Так что это еще не поддерживается в текущей Microsoft Sync Framework (2.0). Что я сделал, так это то, что я зарегистрировался для события CreateSchema в классе SqlCeClientSyncProvider и зациклился для каждой создаваемой таблицы, добавив значение по умолчанию на PK в NEWID ().

Объявление:

SqlCeClientSyncProvider clientProvider = new SqlCeClientSyncProvider(<connectionstring here>);

регистрация события:

clientProvider.CreatingSchema += new EventHandler<Microsoft.Synchronization.Data.CreatingSchemaEventArgs>(clientProvider_CreatingSchema);

событие:

if (e.Table.SyncDirection == SyncDirection.Bidirectional)
{
    if (e.Schema.Tables[e.Table.TableName].Columns[0].DataType == typeof(Guid))
       e.Schema.Tables[e.Table.TableName].Columns[0].DefaultValue = "NEWID()";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...