2011-11-11 5 views
3

에 중첩 된 컬렉션의 특정 항목을 수정 나는 다음과 같은 문서 구조처럼 보이는 무언가가 :RavenDB

public class Document { 
    public int Id { get; set; } 
    public string Name { get; set; } 
    public List<Property> Properties { get; set; } 
} 

public class Property { 
    public int Id { get; set; } 
    public string Name { get; set; } 
} 

지금, 쿼리 및 문서를 수정하는 것은 간단합니다. 하지만 내 응용 프로그램에서 특정 Property-instances에 액세스해야하며 루트 문서처럼 자동으로 ID를 얻지 못하는 것 같습니다. 그리고 이것은 RavenDB에서 설계된 것 같습니다.

나는 관계형 세계에 머물러 있을지 모르지만 기본적으로 올바른 문서를 검색 한 다음 적절한 속성을 가져 와서 수정하고 문서를 다시 저장합니다. 분명히 작동하지 않습니다

from property in document.Properties 
where property.Id == someId 
select property 

은 ... 한

  • 로 RavenDB 내가 어떤 ID-발생기구 나 자신을하지 않는 ID 필드 또는
  • 을 자동으로 설정하지 않습니다

완전히 잘못된 방향으로 가고 있습니까, 아니면 내가 말하는 의미가 무엇입니까? Properties를 루트 노드로 이동시켜 Document에서 일종의 참조를해야합니까?

  1. 이 속성
  2. 가져 오기 등록 [마지막]의 ID
  3. 자신을 하나 추가하고 새로운 ID를 삽입 새 속성 목록과 문서를 검색 : 속성을 삽입 할 때 또는 그냥 이런 식으로 뭔가를해야

?

그러나 이것은 데이터베이스에 적어도 두 가지 요청 (기존 속성을 가져 오려면 하나, 변경 사항을 저장하려면 하나)이 필요합니다. 이는 겉으로보기에 단순한 작업에 대해 더럽고 불필요한 것처럼 보입니다.

많은 비슷한 종류의 게시물을 발견했지만 그 중 누구도이 AFAIK에 답하지 않습니다.

답변