public void Can_get_and_set_properties()
        {
            var deleteHistoryOperation
                = new DeleteHistoryOperation("Foo", "Migration1");

            Assert.Equal("Foo", deleteHistoryOperation.Table);
            Assert.Equal("Migration1", deleteHistoryOperation.MigrationId);
        }
        protected override void Generate(DeleteHistoryOperation deleteHistoryOperation)
        {

            Contract.Requires(deleteHistoryOperation != null);

            using (var writer = Writer())
            {

                writer.Write("DELETE FROM \"dbo\".");

                writer.Write(Name(deleteHistoryOperation.Table));

                writer.Write(" WHERE ");

                writer.Write("{0} = ", Quote("MigrationId"));

                writer.Write(Generate(deleteHistoryOperation.MigrationId));


                Statement(writer);

            }

        }
 protected virtual MigrationStatement Generate(DeleteHistoryOperation op)
 {
     return new MigrationStatement { Sql = string.Format("delete from `{0}` where MigrationId = '{1}'", op.Table, op.MigrationId) };
 }
        /// <summary>
        ///     Generates SQL for a <see cref = "DeleteHistoryOperation" />.
        ///     Generated SQL should be added using the Statement method.
        /// </summary>
        /// <param name = "deleteHistoryOperation">The operation to produce SQL for.</param>
        protected virtual void Generate(DeleteHistoryOperation deleteHistoryOperation)
        {
            Contract.Requires(deleteHistoryOperation != null);

            using (var writer = Writer())
            {
                writer.Write("DELETE FROM ");
                writer.Write(Name(deleteHistoryOperation.Table));
                writer.Write(" WHERE [MigrationId] = ");
                writer.Write(Generate(deleteHistoryOperation.MigrationId));

                Statement(writer);
            }
        }