2016-02-05 65 views
1

我可以通过ArcGIS创建一个GUID列,我可以在SQLSqrver中创建uniqueidentifier列,但Orchard想要通过migrations.cs自动生成表。不幸的是,GUID列使迁移失败,没有创建表。我试图装饰[DatabaseGenerated(DatabaseGeneratedOption.Computed)]模型中的列,但它没有帮助。我用错了吗?或者我需要不同的东西?我制作了其他几张表,所以我宁愿避免GUID列以外的更大变化,除非有必要。如何在Orchard的迁移中创建一个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 
} 

回答

4

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

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

作品!我会等待一小时或两小时的赏金,除非有其他更好的答案(不太可能!)出现。 –

+0

很酷,它是固定它的列名或语法吗?或两者? – Hazza

+0

语法;尽管我也更改了列名,并且没有任何隐患来自它。顺便说一句。我必须等待赏金时间更长,但你有它保留:-) –

相关问题