我的内容类似于以下文档结构:
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
......显然不会像
那样有效我的方向是完全错误的,还是我正在努力做的事情?我应该将属性移动到根节点并在Document中对它们进行某种引用吗?或者我应该在插入属性时执行类似的操作:
?
然而,这将需要至少两个请求(一个用于获取现有属性,一个用于保存更改)到数据库,这对于看似简单的任务来说似乎很脏并且不必要。
我发现了很多类似的帖子,但他们都没有真正回答这个AFAIK。
答案 0 :(得分:1)
检查我们如何在RaccoonBlog中执行此操作: https://github.com/ayende/RaccoonBlog/blob/master/RaccoonBlog.Web/Infrastructure/Tasks/AddCommentTask.cs