public static void AddConstraint(this IQuery query, ObjectName tableName, ConstraintInfo constraintInfo) { if (constraintInfo.ConstraintType == ConstraintType.PrimaryKey) { var columnNames = constraintInfo.ColumnNames; if (columnNames.Length > 1) { throw new ArgumentException(); } query.AddPrimaryKey(tableName, columnNames[0], constraintInfo.ConstraintName); } else if (constraintInfo.ConstraintType == ConstraintType.Unique) { query.AddUniqueKey(tableName, constraintInfo.ColumnNames, constraintInfo.ConstraintName); } else if (constraintInfo.ConstraintType == ConstraintType.Check) { query.AddCheck(tableName, constraintInfo.CheckExpression, constraintInfo.ConstraintName); } else if (constraintInfo.ConstraintType == ConstraintType.ForeignKey) { query.AddForeignKey(tableName, constraintInfo.ColumnNames, constraintInfo.ForeignTable, constraintInfo.ForeignColumnNames, constraintInfo.OnDelete, constraintInfo.OnUpdate, constraintInfo.ConstraintName); } }
private void CreateTables(IQuery query, string testsName) { var columns = new List <SqlTableColumn> { new SqlTableColumn("id", PrimitiveTypes.Integer()), new SqlTableColumn("name", PrimitiveTypes.String()) }; if (testsName.Equals("NotNullColumnViolation")) { columns.Add(new SqlTableColumn("age", PrimitiveTypes.Integer()) { IsNotNull = true }); } query.CreateTable(new ObjectName("a"), columns.ToArray()); query.AddPrimaryKey(new ObjectName("a"), new [] { "id" }); query.AddUniqueKey(new ObjectName("a"), new[] { "name" }); query.CreateTable(new ObjectName("b"), new SqlTableColumn("id", PrimitiveTypes.Integer()), new SqlTableColumn("other_id", PrimitiveTypes.Integer())); query.AddPrimaryKey(new ObjectName("b"), new[] { "id" }); query.AddForeignKey(new ObjectName("b"), new[] { "other_id" }, new ObjectName("a"), new[] { "id" }, ForeignKeyAction.Cascade, ForeignKeyAction.NoAction); }
private void CreateTables(IQuery query, string testsName) { var columns = new List<SqlTableColumn> { new SqlTableColumn("id", PrimitiveTypes.Integer()), new SqlTableColumn("name", PrimitiveTypes.String()) }; if (testsName.Equals("NotNullColumnViolation")) columns.Add(new SqlTableColumn("age", PrimitiveTypes.Integer()) { IsNotNull = true }); query.CreateTable(new ObjectName("a"), columns.ToArray()); query.AddPrimaryKey(new ObjectName("a"), new []{"id"}); query.AddUniqueKey(new ObjectName("a"), new[] {"name"}); query.CreateTable(new ObjectName("b"), new SqlTableColumn("id", PrimitiveTypes.Integer()), new SqlTableColumn("other_id", PrimitiveTypes.Integer())); query.AddPrimaryKey(new ObjectName("b"), new[] {"id"}); query.AddForeignKey(new ObjectName("b"), new[] {"other_id"}, new ObjectName("a"), new[] {"id"}, ForeignKeyAction.Cascade, ForeignKeyAction.NoAction); }