Я пытаюсь синхронизировать Sql Express 2008 с Sql Compact 3.5 с помощью Sync Framework 2.1
У меня есть 2 таблицы
- Клиенты (PK Id, имя строки)
- Orders (PK Id, int Price, строка
Имя, ФК Customer_Id)
Я использую следующий код
public static void CreateScope(string userName)
{
var serverConn = new SqlConnection(@"Data Source=.\SQLEXPRESS; Initial Catalog=Test; Integrated Security=True");
var scopeDescription = new DbSyncScopeDescription(string.Format("Customer-{0}", userID));
var customersTable = SqlSyncDescriptionBuilder.GetDescriptionForTable("Customers", serverConn);
var ordersTable = SqlSyncDescriptionBuilder.GetDescriptionForTable("Orders", serverConn);
ordersTable.Constraints.Add("FK_Customer_Id", "Customers", "Orders", "Id", "Customer_Id");
scopeDesc.Tables.Add(azmanotTable);
scopeDesc.Tables.Add(customersTable);
var serverProvision = new SqlSyncScopeProvisioning(serverConn, scopeDesc);
serverProvision.SetCreateTableDefault(DbSyncCreationOption.Skip);
serverProvision.Tables["Customers"].AddFilterColumn("CustumerName");
serverProvision.Tables["Customers"].FilterClause = string.Format("[side].[CustumerName] = '{0}'", userName);
serverProvision.Apply();
}
Во время синхронизации я получаю отфильтрованную таблицу «Клиенты» , но я также получаю таблицу полных заказов, когда мне требуется только подмножество этих данных, я имею в виду только заказы, которые принадлежат конкретному клиенту.
Я перепробовал все варианты, которые я нашел в Интернете, например, чтобы изменить порядок вставки, добавив внешний ключ вручную, но все еще безуспешно.
Заранее спасибо