如何在 Orchard 的迁移中创建一个 GUID 列?

How to make a GUID column in Orchard's migrations?

我可以通过 ArcGIS 创建一个 GUID 列,我可以在 SQLSqrver 中创建 uniqueidentifier 列,但是 Orchard 想要通过 migrations.cs 自动生成 table。不幸的是,GUID 列使迁移失败,没有创建 table。我试图用 [DatabaseGenerated(DatabaseGeneratedOption.Computed)] 装饰模型中的列,但没有帮助。我用错了吗?或者我需要不同的东西吗?我做了其他几个 table,所以除非必要,否则我宁愿避免在 GUID 列之外进行更大的更改。

Migrations.cs(重要部分):

public int Create() {

    SchemaBuilder.CreateTable(typeof(FooRecord).Name,
        table => table
            .Column<int>("Id", column => column.PrimaryKey().Identity())
            .Column<Guid>("GUID", column => column.NotNull().Unique())
            //other columns
        );

    return 1;
}

型号:

public class FooRecord
{
    public virtual int Id { get; set; }
    [DatabaseGenerated(DatabaseGeneratedOption.Computed)]
    public virtual Guid GUID { get; set; }
    //other columns
}

Orchard 以前不支持 guids 的语法,我上次检查(几年前),你必须这样写:

.Column("MyGuid", DbType.Guid, column => column.NotNull().Unique())