【问题标题】:Kentico 11 System Generated GUIDKentico 11 系统生成的 GUID
【发布时间】:2018-07-10 18:34:13
【问题描述】:

使用 Kentico 11(门户引擎)
我想向我的一种页面类型添加一个 GUID 字段。我希望系统生成 guid(我假设这是通过宏完成的?)。知道什么宏可以解决问题吗?任何帮助表示赞赏。

【问题讨论】:

    标签: kentico


    【解决方案1】:

    我不相信有一个宏会为您生成一个新的 GUID。您必须创建一个 custom macro method 才能为您执行此操作。您正在使用的宏将不起作用,因为在访问宏时未创建文档。而且它也不会是独一无二的。

    【讨论】:

    • 您认为我可以更改 SQL 管理工作室中的表而不会造成严重问题吗? ALTER TABLE MyTable 添加约束 DF_Guid DEFAULT NEWID() FOR VideoGuid;
    • 使用了自定义宏方法路由。谢谢。
    • 您可以使用直接 SQL 添加约束,尽管它不受支持并且可能会破坏您的升级路径。如果自定义宏方法适合您,我强烈推荐它而不是 SQL 修改。
    【解决方案2】:

    我遇到了同样的问题...我只是通过添加默认值直接在 SQL 中修复它:

    ALTER TABLE [SomeTableName] ADD CONSTRAINT [ContraintName] DEFAULT NEWID() FOR [ColumName];
    

    这是您的自定义列,因此您可以将值设置为您想要的任何值。我没有看到 GUID 宏有任何其他用途,尽管它并不复杂。

    【讨论】:

      【解决方案3】:

      对于其他偶然发现需要自动填充唯一标识符字段的问题的人,我选择使用现有的宏函数来拼凑一个唯一的字符串。这是一个比构建自己的宏路径更具吸引力的解决方案。

      这是我在默认值字段中使用的宏:

      {% String.FormatString("{0:yyyyMMddhhmmssfffff}", CurrentDateTime) + Math.GetRandomInt(10000, 99999) #%}
      

      这是一个示例值:

      201912200958109206631318
      

      不,从技术上讲,它不是 GUID。不过,它确实可以完成这项工作。

      【讨论】:

        猜你喜欢
        • 2021-09-15
        • 1970-01-01
        • 2011-03-11
        • 1970-01-01
        • 1970-01-01
        • 2012-05-25
        • 2016-12-23
        • 2019-09-24
        相关资源
        最近更新 更多