public void Dispatches_visitor() { var operation = new AlterSequenceOperation("dbo.MySequence", 7); var sqlGeneratorMock = new Mock <MigrationOperationSqlGenerator>(new RelationalTypeMapper()); var builder = new IndentedStringBuilder(); operation.GenerateSql(sqlGeneratorMock.Object, builder); sqlGeneratorMock.Verify(g => g.Generate(operation, builder), Times.Once()); var codeGeneratorMock = new Mock <MigrationCodeGenerator>(new Mock <ModelCodeGenerator>().Object); builder = new IndentedStringBuilder(); operation.GenerateCode(codeGeneratorMock.Object, builder); codeGeneratorMock.Verify(g => g.Generate(operation, builder), Times.Once()); var visitorMock = new Mock <MigrationOperationVisitor <object> >(); var context = new object(); operation.Accept(visitorMock.Object, context); visitorMock.Verify(v => v.Visit(operation, context), Times.Once()); }
public virtual AlterOperationBuilder <AlterSequenceOperation> AlterSequence( [NotNull] string name, [CanBeNull] string schema = null, int incrementBy = 1, [CanBeNull] long?minValue = null, [CanBeNull] long?maxValue = null, bool cyclic = false, int oldIncrementBy = 1, [CanBeNull] long?oldMinValue = null, [CanBeNull] long?oldMaxValue = null, bool oldCyclic = false) { Check.NotEmpty(name, nameof(name)); var operation = new AlterSequenceOperation { Schema = schema, Name = name, IncrementBy = incrementBy, MinValue = minValue, MaxValue = maxValue, IsCyclic = cyclic, OldSequence = new SequenceOperation { IncrementBy = oldIncrementBy, MinValue = oldMinValue, MaxValue = oldMaxValue, IsCyclic = oldCyclic } }; Operations.Add(operation); return(new AlterOperationBuilder <AlterSequenceOperation>(operation)); }
public override void Generate( AlterSequenceOperation alterSequenceOperation, IndentedStringBuilder stringBuilder) { throw new NotSupportedException(Strings.FormatMigrationOperationNotSupported( GetType(), alterSequenceOperation.GetType())); }
public void Generate_with_alter_sequence_is_not_supported() { var operation = new AlterSequenceOperation("EpisodeSequence", 7); Assert.Equal( Strings.FormatMigrationOperationNotSupported(typeof(SQLiteMigrationOperationSqlGenerator), operation.GetType()), Assert.Throws <NotSupportedException>(() => Generate(operation)).Message); }
protected override void Generate(AlterSequenceOperation operation, IModel model, MigrationCommandListBuilder builder) { builder.Append("ALTER SEQUENCE "); builder.Append(Dependencies.SqlGenerationHelper.DelimitIdentifier(operation.Name, operation.Schema)); builder.Append(" RESTART INCREMENT BY "); builder.Append(operation.IncrementBy.ToString(CultureInfo.InvariantCulture)); TerminateStatement(builder); }
public void Create_and_initialize_operation() { var operation = new AlterSequenceOperation("dbo.MySequence", 7); Assert.Equal("dbo.MySequence", operation.SequenceName); Assert.Equal(7, operation.NewIncrementBy); Assert.False(operation.IsDestructiveChange); }
protected virtual void Generate([NotNull] AlterSequenceOperation operation, [NotNull] IndentedStringBuilder builder) { Check.NotNull(operation, nameof(operation)); Check.NotNull(builder, nameof(builder)); builder.AppendLine(".AlterSequence("); using (builder.Indent()) { builder .Append("name: ") .Append(_code.Literal(operation.Name)); if (operation.Schema != null) { builder .AppendLine(",") .Append("schema: ") .Append(_code.Literal(operation.Schema)); } if (operation.IncrementBy != null) { builder .AppendLine(",") .Append("incrementBy: ") .Append(_code.Literal(operation.IncrementBy)); } if (operation.MinValue != null) { builder .AppendLine(",") .Append("minValue: ") .Append(_code.Literal(operation.MinValue)); } if (operation.MaxValue != null) { builder .AppendLine(",") .Append("maxValue: ") .Append(_code.Literal(operation.MaxValue)); } if (operation.Cycle) { builder .AppendLine(",") .Append("cycle: true"); } builder.Append(")"); Annotations(operation.Annotations, builder); } }
public override void Visit(AlterSequenceOperation alterSequenceOperation, DatabaseModel databaseModel) { Check.NotNull(alterSequenceOperation, "alterSequenceOperation"); Check.NotNull(databaseModel, "databaseModel"); var sequence = databaseModel.GetSequence(alterSequenceOperation.SequenceName); sequence.IncrementBy = alterSequenceOperation.NewIncrementBy; }
public void Generate_when_alter_sequence_operation() { var operation = new AlterSequenceOperation("dbo.MySequence", newIncrementBy: 13); Assert.Equal( @"AlterSequence(""dbo.MySequence"", 13)", CSharpMigrationCodeGenerator.Generate(operation)); GenerateAndValidateCode(operation); }
public virtual void Generate([NotNull] AlterSequenceOperation alterSequenceOperation, [NotNull] SqlBatchBuilder batchBuilder) { Check.NotNull(alterSequenceOperation, "alterSequenceOperation"); Check.NotNull(batchBuilder, "batchBuilder"); batchBuilder .Append("ALTER SEQUENCE ") .Append(DelimitIdentifier(alterSequenceOperation.SequenceName)) .Append(" INCREMENT BY ") .Append(alterSequenceOperation.NewIncrementBy); }
/// <summary> /// 修改序列号转换。 /// </summary> /// <param name="operation">操作实例。</param> /// <param name="builder"><see cref="MigrationCommandListBuilder"/>实例。</param> protected virtual void SequenceOptions( [NotNull] AlterSequenceOperation operation, [NotNull] MigrationCommandListBuilder builder) => SequenceOptions( operation.Schema, operation.Name, operation.IncrementBy, operation.MinValue, operation.MaxValue, operation.IsCyclic, builder);
public async Task AlterSequence() { var operation = new AlterSequenceOperation() { Name = "MySequence", IncrementBy = 12, }; var batch = await Generate(new[] { operation }); Assert.AreEqual(1, batch.Count()); Assert.AreEqual(NewLineEnd(@"ALTER SEQUENCE ""MySequence"" RESTART INCREMENT BY 12;"), batch[0].CommandText); }
public override void Generate(AlterSequenceOperation alterSequenceOperation, IndentedStringBuilder stringBuilder) { Check.NotNull(alterSequenceOperation, "alterSequenceOperation"); Check.NotNull(stringBuilder, "stringBuilder"); stringBuilder .Append("AlterSequence(") .Append(GenerateLiteral(alterSequenceOperation.SequenceName)) .Append(", ") .Append(GenerateLiteral(alterSequenceOperation.NewIncrementBy)) .Append(")"); }
public virtual void SequenceOptions( [NotNull] AlterSequenceOperation operation, [CanBeNull] IModel model, [NotNull] SqlBatchBuilder builder) => SequenceOptions( operation.Schema, operation.Name, operation.IncrementBy, operation.MinValue, operation.MaxValue, operation.Cycle, model, builder);
protected virtual void SequenceOptions( [NotNull] AlterSequenceOperation operation, [CanBeNull] IModel model, [NotNull] RelationalCommandListBuilder builder) => SequenceOptions( operation.Schema, operation.Name, operation.IncrementBy, operation.MinValue, operation.MaxValue, operation.IsCyclic, model, builder);
public void Visit_with_alter_sequence_operation() { var model = new DatabaseModel(); var operation = new AlterSequenceOperation("dbo.MySequence", 7); model.AddSequence(new Sequence("dbo.MySequence", "bigint", 0, 6)); operation.Accept(new DatabaseModelModifier(), model); Assert.Equal(1, model.Sequences.Count); Assert.Equal("dbo.MySequence", model.Sequences[0].Name); Assert.Equal("bigint", model.Sequences[0].DataType); Assert.Equal(0, model.Sequences[0].StartWith); Assert.Equal(7, model.Sequences[0].IncrementBy); }
protected virtual void Generate( [NotNull] AlterSequenceOperation operation, [CanBeNull] IModel model, [NotNull] RelationalCommandListBuilder builder) { Check.NotNull(operation, nameof(operation)); Check.NotNull(builder, nameof(builder)); builder .Append("ALTER SEQUENCE ") .Append(SqlGenerator.DelimitIdentifier(operation.Name, operation.Schema)); SequenceOptions(operation, model, builder); }
public virtual void Generate( [NotNull] AlterSequenceOperation operation, [CanBeNull] IModel model, [NotNull] SqlBatchBuilder builder) { Check.NotNull(operation, nameof(operation)); Check.NotNull(builder, nameof(builder)); builder .Append("ALTER SEQUENCE ") .Append(_sql.DelimitIdentifier(operation.Name, operation.Schema)); SequenceOptions(operation, model, builder); }
/// <summary> /// 修改序列号。 /// </summary> /// <param name="operation">操作实例。</param> /// <param name="builder"><see cref="MigrationCommandListBuilder"/>实例对象。</param> protected virtual void Generate( [NotNull] AlterSequenceOperation operation, [NotNull] MigrationCommandListBuilder builder) { Check.NotNull(operation, nameof(operation)); Check.NotNull(builder, nameof(builder)); builder .Append("ALTER SEQUENCE ") .Append(SqlHelper.DelimitIdentifier(operation.Name, operation.Schema)); SequenceOptions(operation, builder); builder.AppendLine(SqlHelper.StatementTerminator); EndStatement(builder); }
public virtual OperationBuilder <AlterSequenceOperation> AlterSequence( [NotNull] string name, [CanBeNull] string schema = null, [CanBeNull] int?incrementBy = null, [CanBeNull] long?minValue = null, [CanBeNull] long?maxValue = null, bool cycle = false) { Check.NotEmpty(name, nameof(name)); var operation = new AlterSequenceOperation { Schema = schema, Name = name, IncrementBy = incrementBy, MinValue = minValue, MaxValue = maxValue, Cycle = cycle }; Operations.Add(operation); return(new OperationBuilder <AlterSequenceOperation>(operation)); }
protected override void Generate(AlterSequenceOperation operation, IModel model, MigrationCommandListBuilder builder) { throw new NotSupportedException("JET does not support sequences"); }
protected override void Generate(AlterSequenceOperation operation, IModel model, MigrationCommandListBuilder builder) { throw new NotSupportedException(string.Format(NotSupported, operation.GetType().Name)); }
protected override void Generate(AlterSequenceOperation operation, IModel model, RelationalCommandListBuilder builder) { throw new NotSupportedException("SQL Server Compact does not support sequences."); }
protected override void Generate(AlterSequenceOperation operation, IModel model, MigrationCommandListBuilder builder) { throw new NotSupportedException(SqliteStrings.SequencesNotSupported); }
protected override void Generate(AlterSequenceOperation operation, IModel model, SqlBatchBuilder builder) { throw new NotSupportedException(Strings.SequencesNotSupported); }
public abstract void Generate([NotNull] AlterSequenceOperation alterSequenceOperation, [NotNull] IndentedStringBuilder stringBuilder);