2013-09-06 2 views
4

RavenDB에서 놀기 시작했습니다. (정말 멋진 모양입니다). 그러나 나는 다음을 시도해 붙어있다. RavenDB 새로 저장 한 문서의 ID를 얻습니다.

은 내가 새로 저장된 문서의 ID를 좀하고 싶습니다 그래서 지금

Product p = new Product() { Title = "My Fancy Product" }; 
RavenSession.Store(p); 

같은 새 문서를 저장합니다. 누가 이것을 할 수 있습니까? 가게가 작동하지 않는 것처럼 p.Id에 접속하는 것만으로 ...

미리 감사드립니다!

+1

'Id'속성 유형은 정수 또는 문자열입니까? –

+0

정수 유형 –

+0

문자열이어야합니다. –

답변

9

Product 클래스의 Id 속성은 정수 대신 string이어야합니다. 그런 다음

당신이 수술 후 자동 생성 된 ID를 검색 할 수 :

Product p = new Product() { Title = "My Fancy Product" }; 
RavenSession.Store(p); 
string id = p.Id; 

더 자세한 정보는 documentation (Document IDs 섹션)에서 찾을 수 있습니다

의 예에서 우리가 가진 이상 BlogPost의 문자열 ID 속성 및 은 비워 둡니다. 이 문서에서는이 속성이 "기본 키"로 사용됩니다. RavenDB가 "BlogPosts/1"이라는 기본 규약을 기반으로 우리가 을 잠시 후에 토대로 우리에게 ID를 생성 한 방법에 주목하십시오. 문서에는 Id 속성이없는 경우

, RavenDB은 여전히 ​​ 고유 ID를 생성합니다,하지만 그것은 단지 session.Advanced.GetDocumentId (객체)를 호출하여 검색 할 수 있습니다. 즉, Id 속성을 갖는 것은 전적으로 선택 사항이므로이 정보가 더 필요할 때만 속성을 명시 적으로 정의 할 수 있습니다.

+0

오, 고마워요! –

+0

그게 전부예요.하지만'documentName/id'를 돌려줍니다. - 그것은 작품의 스패너일지도 모르겠지만 그것은 내가 생각하는 것입니다. +1 – ppumkin

+0

@ppumkin 문자열 분할은 얼마나 힘듭니다? 마치 스패너처럼 보이는 섬세한 작품이어야합니다. – ProfK

관련 문제