에 중첩 된 컬렉션의 특정 항목을 수정 나는 다음과 같은 문서 구조처럼 보이는 무언가가 :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에서 일종의 참조를해야합니까?
- 이 속성
- 가져 오기 등록 [마지막]의 ID
- 자신을 하나 추가하고 새로운 ID를 삽입 새 속성 목록과 문서를 검색 : 속성을 삽입 할 때 또는 그냥 이런 식으로 뭔가를해야
?
그러나 이것은 데이터베이스에 적어도 두 가지 요청 (기존 속성을 가져 오려면 하나, 변경 사항을 저장하려면 하나)이 필요합니다. 이는 겉으로보기에 단순한 작업에 대해 더럽고 불필요한 것처럼 보입니다.
많은 비슷한 종류의 게시물을 발견했지만 그 중 누구도이 AFAIK에 답하지 않습니다.
간단하고 부드러운. 비록 그것이 "여분의 불필요한 정보"의 sortof이지만 -하지만 나는 그것이 단지 관계형 세계에 갇혀있는 것 같아요. –