2012-12-20 4 views
2

나는 RavenDB를 배우고 어떻게 작동하는지 익히 알고 있습니다. 내가 이해하지 못하는 한 가지는 까마귀가 만든 이드를 저장하는 법입니다.ravendb에서 고유 ID를 설정하는 방법

public class User 
{ 
    public string FirstName { get; set; } 
    public string LastName { get; set; } 
    public string ID { get; set; } //This will be null when I save object to DB I want it to be same as generated 
} 

[TestMethod] 
public void TestSaving() 
{ 
    using (var session = documentStore.OpenSession()) 
    { 
     var user = new User { FirstName = "John", LastName = "Doe" }; 
     session.Store(user); 
     session.SaveChanges(); //I want that property to save that id that raven created: Users/65 
    } 
} 

답변

6

here 내가 ID 속성을 "ID"입니다 찾는 까마귀의 기본 규칙을 생각하는 기본 규칙에 대한 자세한 내용을 볼 수 있습니다 : 다른 규칙을 원한다면, 당신은 까마귀의 기본값을 변경할 수 있습니다 는 대소 문자를 구분합니다. ID가 아닌 ID로 속성의 이름을 변경하십시오.

1

다시 살펴보십시오. session.Store(user)을 호출 한 직후에 ID 속성이 이미 설정되어있는 것을 알 수 있습니다. SaveChanges() 전에도 호출됩니다.

업데이트

미안 해요, 당신의 재산의 케이스를 통보하지 않았다. 레이븐의 기본 규칙은 "Id"라는 속성을 찾는 것입니다.이 속성은 대소 문자를 구분합니다.

documentStore.Conventions.FindIdentityProperty = x => x.Name == "ID"; 

당신은

+0

그런 다음 실제 속성이 문서에서 null로 설정된 이유는 무엇입니까? – user516883

관련 문제