如何在 ArangoDB 中创建组合键

How to create composite key at ArrangoDB

我在 C# 中使用了 ArangoDB.Client。 我正在创建资源 class 并将 ResourceId 和 Locale 作为复合键。

public class Resource
{
    [Key, Column(Order = 1)]
    public Guid ResourceId {get; set;}
    [Key, Column(Order = 2)]
    [MaxLength(5)]
    public string Locale {get; set;}
    public string ResourceName {get; set;}
}

以上 class 无效。我必须如下使用并要求结合 ResourceId 和 Locale 以保存为密钥。

public class Resource
{
    [DocumentProperty(Identifier = IdentifierType.Key)]
    public string Key { get; set; }
    public Guid ResourceId {get; set;}
    [MaxLength(5)]
    public string Locale {get; set;}
    public string ResourceName {get; set;}
}

有其他想法请多多指教!

ArangoDB 键只能设置在一个名为 _key 的属性上。使用 c# 客户端,您只能指定 class 成员中的哪一个应该转换为 _key 属性。

我自己没有这样做,但您可以连接 ResourceIdLocale 并将其设置为 Key(请注意,密钥的长度最多应为 254 个字节)

public string Key => $"{ResourceId.ToString("N")}_{Locale}";

或者如果您希望这些字段对于每个文档都是唯一的,您可以在 ResourceIdLocale 上创建一个唯一的哈希索引,并将它们作为普通属性。