我正在使用Microsoft Sync Frameowrk,它正在带来我的桌子,但它不是在拉动外键吗?我确保将父(PK表)带到第一位,因为我认为会导致FK失败。
我在这里缺少的是不允许FK带同步?
使用SQL Server 2008 R2和SQL Server 2008 R2 Express。我相信我正在使用Sync 2.1 Framework。
任何建议都将不胜感激。
谢谢,
取值
答案 0 :(得分:2)
同步Fx不提供除PK之外的FK和其他约束。你必须编写你的FK脚本并以编程方式应用它们。
答案 1 :(得分:0)
ServerSyncProvider创建一个DataSet,ClientSyncProvider用它来填充客户端数据库上的表。默认情况下提供的功能(如您所述)不包括外键约束。 (我不知道为什么......这似乎有意义)
最简单的方法是覆盖ServerSyncProvider的GetSchema方法,如下所示:
public override SyncSchema GetSchema(Collection<string> tableNames,SyncSession syncSession)
{
var schema = base.GetSchema(tableNames,syncSession);
schema.SchemaDataSet.Tables["Table1"].Constraints.Add(new ForeignKeyConstraint(...));
return schema;
}
ClientSyncProvider将根据数据集中的内容
在外键中编写脚本当然,您可能希望以编程方式从数据库中提取外键,如http://blog.sqlauthority.com/2006/11/01/sql-server-query-to-display-foreign-key-relationships-and-name-of-the-constraint-for-each-table-in-database/