如何在ArrangoDB上创建组合键

时间:2016-12-01 02:43:14

标签: c# arangodb composite-key

我在C#中使用了ArangoDB.Client。 我正在创建一个资源类,并将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;}
}

以上课程不起作用。我必须使用如下,并要求将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;}
}

请建议任何其他想法!

1 个答案:

答案 0 :(得分:1)

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

我自己没有这样做,但你可以联合ResourceIdLocale并将其设置为Key(只要知道密钥长度最多为254个字节)< / p>

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

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