【问题标题】:How to make a GUID column in Orchard's migrations?如何在 Orchard 的迁移中创建 GUID 列?
【发布时间】:2016-05-15 13:45:35
【问题描述】:

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

【问题讨论】:

    标签: c# sql-server orchardcms database-migration orchardcms-1.8


    【解决方案1】:

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

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

    【讨论】:

    • 有效!我将等待一两个小时的赏金任务,除非有其他更好的答案(不太可能!)。
    • 酷,是列名还是修复了它的语法?还是两者兼而有之?
    • 语法;尽管我也更改了列名,并且没有任何风险隐藏来自它的错误。顺便提一句。我将不得不等待更多的赏金,但你保留了它:-)
    • 我很快查了一下,你可以有一个名为 guid 的列 :)
    猜你喜欢
    • 1970-01-01
    • 2014-02-03
    • 2012-05-26
    • 1970-01-01
    • 2012-06-27
    • 2012-07-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-08
    相关资源
    最近更新 更多