Поскольку это что-то простое, «Только загрузка», он работает хорошо и быстро.
Теперь мне нужно создать фильтр — что-то вроде
Код: Выделить всё
FROM Table_Name
WHERE tenantID = @myVariable
https://dotmimsync.readthedocs.io/Filters.html
Очевидно логика простой и идеальный, но я не могу запустить фильтр, он синхронизируется, но не фильтрует
У меня есть несколько таблиц, и я хочу создать фильтр, в котором идентификатор клиента столбец (FK) равен значению моей переменной GUID.
Например:
Код: Выделить всё
var setup = new SyncSetup("dbo.Tennants", "dbo.Devices", "dbo.Audios", et cetera...)
setup.Tables["dbo.Tennants"].SyncDirection = SyncDirection.DownloadOnly;
setup.Tables["dbo.Devices"].SyncDirection = SyncDirection.DownloadOnly;
setup.Tables["dbo.Audios"].SyncDirection = SyncDirection.DownloadOnly;
Код: Выделить всё
var filterTenants = new SetupFilter("Tenants");
filterTenants.AddParameter("TenantId", DbType.Guid);
filterTenants.AddWhere("TenantId", "Tenants", "TenantId");
setup.Filters.Add(filterTenants);
var filterDevices = new SetupFilter("Devices");
filterDevices.AddParameter("TenantId", DbType.Guid);
filterDevices.AddWhere("TenantId", "Devices", "TenantId");
setup.Filters.Add(filterDevices);
var filterAudios = new SetupFilter("Audios");
filterAudios.AddParameter("TenantId", DbType.Guid);
filterAudios.AddWhere("TenantId", "Audios", "TenantId");
setup.Filters.Add(filterAudios);
Здесь я определяю созданный параметр TenantID для моей переменной C# _myTenantId
Код: Выделить всё
var parameters = new SyncParameters
{
{ "TenantId", _myTenantId }
};
Код: Выделить всё
var result = await agent.SynchronizeAsync(setup, parameters, progress);
Он все синхронизирует TenantID, а не тот, что в моей переменной _myTenantId.
Я сделал рабочий пример, чтобы проверить эту проблему
- Создать 2 базы данных MSSQL (главную и локальную)
- Включить отслеживание изменений Создать начальное значение по tennantId Создать начальное значение по случайным данным.
Запустите базу данных синхронизации с помощью Dotmin, создав фильтр по тенанту.
Он выполняет синхронизацию, но со всеми данными (случайными и по теннанту). Я хотел, чтобы локальная база данных имела только по TennantId == appSettings.jon
Подробнее здесь: https://stackoverflow.com/questions/790 ... s-the-filt
Мобильная версия