这两个命令都可以在数据库表中添加新列,但主要区别在于它们的用途和语法。
using FluentMigrator;
[Migration(1)]
public class AddNewColumn : Migration
{
public override void Up()
{
Alter.Table("myTable")
.AddColumn("newColumn").AsString().NotNullable();
}
public override void Down()
{
Delete.Column("newColumn").FromTable("myTable");
}
}
using FluentMigrator;
[Migration(1)]
public class CreateTableWithNewColumn : Migration
{
public override void Up()
{
Create.Table("newTable")
.WithColumn("id").AsInt32().PrimaryKey().Identity()
.WithColumn("newColumn").AsString().NotNullable();
}
public override void Down()
{
Delete.Table("newTable");
}
}
因此,这两个命令的区别在于:Alter.Table().AddColumn()修改已有的表,并添加新列,而Create.Column().OnTable()创建新表,并添加新列。