public PrimaryKey(string name, ColumnDefinition[] columns) { if(columns == null) throw new ArgumentNullException("columns"); _name = name; _columns.AddRange(columns); }
public override string NativeColumnString(ColumnDefinition column) { return String.Format("IDENTITY({0},{1})", column.Seed, column.Increment); }
private void AddColumnTo(CreateTableSQLCommand table, string columnName, DbType type, int size, byte precision, byte scale, bool isNotNull, object defaultValue) { SqlObjectModel.LDD.ColumnConstraint constraint = null; if (defaultValue != null) constraint = new SqlObjectModel.LDD.DefaultConstraint(new Constant(defaultValue, type), !isNotNull); else constraint = new SqlObjectModel.LDD.ColumnConstraint(!isNotNull); if (!table.ColumnDefinitions.Contains(columnName)) { ColumnDefinition column = new ColumnDefinition(columnName, type, size, precision, scale, constraint); table.ColumnDefinitions.Add(columnName, column); } else { ColumnDefinition column = table.ColumnDefinitions[columnName] as ColumnDefinition; column.ColumnConstraint = constraint; } }
private void AddForeignKeysTo(CreateTableSQLCommand table, string columnName, string ref_column_name, string ref_table_name, GeneratorMapping map_generator, object defaultValue) { if (!table.ColumnDefinitions.Contains(columnName)) { DbType type = _Dialect.GetDbTypeToPrimaryKey(map_generator); SqlObjectModel.LDD.ColumnConstraint constraint = null; if (defaultValue != null) constraint = new SqlObjectModel.LDD.DefaultConstraint(new Constant(defaultValue, type), false); else constraint = new SqlObjectModel.LDD.ColumnConstraint(true); int size = _Dialect.GetSizeToPrimaryKey(map_generator); ColumnDefinition column = new ColumnDefinition(columnName, type, size, constraint); table.ColumnDefinitions.Add(columnName, column); // Add foreign keys here } }
private void AddPrimaryKeysTo(CreateTableSQLCommand table, string columnName, GeneratorMapping map_generator) { if (!table.ColumnDefinitions.Contains(columnName)) { DbType type; try { type = _Dialect.GetDbTypeToPrimaryKey(map_generator); } catch (NullReferenceException ex) { throw new MappingNotFoundException(string.Format("The type is not defined for the field {0} in the table {1}", columnName, table.TableName)); } int size = _Dialect.GetSizeToPrimaryKey(map_generator); ColumnDefinition column = new ColumnDefinition(columnName, type, size); if (map_generator.Name == GeneratorMapping.GeneratorType.native) { int seed = map_generator.GetParam("seed") != null ? Convert.ToInt32(map_generator.GetParam("seed").Value) : 1; int increment = map_generator.GetParam("increment") != null ? Convert.ToInt32(map_generator.GetParam("increment").Value) : 1; column.EnableAutoIncrement(increment, seed); } table.ColumnDefinitions.Add(columnName, column); if (table.PrimaryKey == null) table.PrimaryKey = new PrimaryKey(String.Concat("PK_", table.TableName), new ColumnDefinition[] { column }); else table.PrimaryKey.Columns.Add(column); } else { if (map_generator.Name == GeneratorMapping.GeneratorType.business) { ColumnDefinition column = table.ColumnDefinitions[columnName] as ColumnDefinition; if (table.PrimaryKey == null) table.PrimaryKey = new PrimaryKey(String.Concat("PK_", table.TableName), new ColumnDefinition[] { column }); else { if (!table.PrimaryKey.Columns.Contains(column)) table.PrimaryKey.Columns.Add(column); } } } }
public override string NativeColumnString(ColumnDefinition column) { return String.Format("AUTO_INCREMENT"); }
public PrimaryKey(ColumnDefinition[] columns) : this(null, columns) { }
public abstract void Visit(ColumnDefinition column);
public override string NativeColumnString(ColumnDefinition column) { return String.Format(String.Empty); }
public virtual void Visit(ColumnDefinition column) { _Query.Append(FormatAttribute(column.ColumnName)).Append(SPACE).Append(ConvertDbTypeToString(column.Type, column.Size, column.Precision, column.Scale)).Append(SPACE); if (column.IsAutoIncrement) _Query.Append(this.NativeColumnString(column)).Append(SPACE); if(column.ColumnConstraint != null) column.ColumnConstraint.Accept(this ); }
public abstract string NativeColumnString(ColumnDefinition column);