我可以通过 ArcGIS 创建一个GUID
列,我可以在 SQLSqrver 中创建一个uniqueidentifier
列,但 Orchard 希望通过 migrations.cs
自动生成表。遗憾的是,GUID
列使迁移失败,不会创建任何表。我试图用[DatabaseGenerated(DatabaseGeneratedOption.Computed)]
装饰模型中的柱子,但没有帮助。我用错了吗?还是我需要不同的东西?我制作了其他几个表,因此除非必要,否则我宁愿避免在GUID
列之外进行较大的更改。
迁移.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 以前不支持我上次检查(几年前)的 guid 语法,你必须这样写:
.Column("MyGuid", DbType.Guid, column => column.NotNull().Unique())