2016-12-01 4 views
0

Cran #에서 ArangoDB.Client를 사용했습니다. 리소스 클래스를 만들고 ResourceId와 Locale을 복합 키로 만듭니다.ArrangoDB에서 복합 키를 만드는 방법

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;} 
} 

다른 의견을 제시하십시오.

+0

'ResourceId' 타입은 이미 고유 한'Guid'입니다. 왜 그것을'Locale'과 결합하고 싶습니까? –

답변

1

ArangoDB 키는 _key이라는 속성 하나에서만 설정할 수 있습니다. C# 클라이언트를 사용하면 클래스 멤버 중 어느 하나를 _key 특성으로 변환해야하는지 지정할 수 있습니다.

나는이에게 자신을하지 않았다하지만 당신은 ResourceIdLocale을 CONCAT 및

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

또는 (단지 인식 키 길이 최대 254 바이트해야 할) Key으로 설정할 수 있습니다 당신은 이러한 필드를 원하는 경우 각 문서에 대해 고유해야하는 경우 ResourceIdLocale에 고유 한 해시 색인을 생성하고 일반 특성으로 작동 할 수 있습니다.