自动增量/标识自定义字段类型

我目前正在实现一个系统,其中有用户生成的项目,我们可以称之为订单。 我希望有一个字段(非GUID),客户可以通过电话轻松说出或写下代表订单的字段。 该领域应该简单而独特,这让我想到了一个身份领域。 项目的GUID的一部分,比如10个字符,是否足够独特? 如何在Sitecore中实现这样的独特字段?

GUID是字母数字,这对我的情况很好,但是太长了。 目前我这样做的例子可能是103143317(商店103,下午2:33.17)

版本:Sitecore 6.6

您可以使用以下代码:

static string uniqueCode() { string characters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789!@#"; string ticks = DateTime.UtcNow.Ticks.ToString(); var code = ""; for (var i = 0; i < characters.Length; i += 2) { if ((i + 2) <= ticks.Length) { var number = int.Parse(ticks.Substring(i, 2)); if (number > characters.Length - 1) { var one = double.Parse(number.ToString().Substring(0, 1)); var two = double.Parse(number.ToString().Substring(1, 1)); code += characters[Convert.ToInt32(one)]; code += characters[Convert.ToInt32(two)]; } else code += characters[number]; } } return code; } 

此代码将基于通用时间戳刻度生成唯一代码/密钥。

此链接中的更多详细信息

您可以通过自定义令牌而不是自定义字段来实现此目的。 我在这里已经回答了类似的问题: Sitecore – 自定义字段,在创建时添加唯一值

基本上,您将创建一个自定义标记并在其中添加您的生成算法。 您可以使用Guid.NewGuid()对其应用某种哈希值,并根据需要选择任意数量的字符。