/// <summary>
        /// Generate a SQL to add  new computed column in a table at database
        /// </summary>
        /// <param name="addComputedColumnOperation"></param>
        public virtual void Generate(AddComputedColumnOperation addComputedColumnOperation)
        {
            using (var writer = Writer())
            {
                object computedColumn;
                addComputedColumnOperation.AnonymousArguments.TryGetValue(addComputedColumnOperation.AnonymousArguments.FirstOrDefault().Key, out computedColumn);

                writer.WriteLine("ALTER TABLE {0} ADD {1} AS {2};", addComputedColumnOperation.TableName, addComputedColumnOperation.ColumnName, computedColumn);

                this.Statement(writer);
            }
        }
        public void Can_get_properties()
        {
            var operation = new AddComputedColumnOperation("tableName", "columnName", new { ComputedColumn = "computedColumn" });

            Assert.Equal("tableName", operation.TableName);
            Assert.Equal("columnName", operation.ColumnName);

            object computedColumn;

            operation.AnonymousArguments.TryGetValue(operation.AnonymousArguments.FirstOrDefault().Key, out computedColumn);

            Assert.Equal("computedColumn", computedColumn);
        }