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-Instance,而且似乎他們不會像根文檔那樣自動獲取ID。看來這是RavenDB的設計。
我可能是我卡在關係世界,但我想要做的基本上是檢索正確的文件,然後得到正確的屬性,修改並重新保存文檔。
from property in document.Properties
where property.Id == someId
select property
...這顯然會無法正常工作,只要
- RavenDB不會自動設置ID字段或
- 我不作任何ID生成機理自己
我是否完全錯誤地行事,或者做我想要做的事情嗎?我應該將屬性移出爲根節點並在Document中對它們進行某種引用?
- 檢索文檔與性能
- 獲取屬性[最後]的ID
- 加1,然後插入新的ID自己在新的屬性列表:或者我應該只是插入屬性時,做這樣的事情
?
這會,但是,需要至少兩個請求(一個讓現有的屬性,一個保存更改),到數據庫中,這似乎只是骯髒和unnecessarsy對於這樣一個看似簡單的任務。
我發現了很多類似的帖子,但都沒有真正回答這個AFAIK。
簡潔流暢。儘管這是一些「額外的不必要的信息」 - 但我想這只是我陷入關係世界。 –