public void AddForeignKey() { var parentTable = ModelBuilder.BuildTable("table1", "this", "that", "other", "Id"); var childTable = ModelBuilder.BuildTable("table2", "table1Id", "whatever", "tom", "dick", "harry"); var fk = new ForeignKey() { Name = "FK_table2_table1", Parent = childTable, ReferencedTable = parentTable, Columns = new ForeignKey.Column[] { new ForeignKey.Column() { ReferencingName = "table1Id", ReferencedName = "Id" } } }; var srcModel = new DataModel() { Tables = new Table[] { parentTable, childTable }, ForeignKeys = new ForeignKey[] { fk } }; var destModel = new DataModel() { Tables = new Table[] { parentTable, childTable } }; var diff = DataModel.Compare(srcModel, destModel); Assert.IsTrue(diff.Contains(new ScriptAction() { Type = ActionType.Create, Object = fk, Commands = fk.CreateStatements() })); }