2010-06-25 61 views
14

如果您在持久实体上添加,删除或重命名属性,那么更新RavenDB中的文档最简单的方法是什么?在RavenDB中更新文档

+1

看看这里的文档,这是很好的描述:http://ravendb.net/docs/client-api/partial-document-updates – Dofs 2012-06-07 10:24:34

回答

16

RavenDB支持PATCH命令,有关更多信息,请参阅the docs了解更多信息。通过这种方式,您可以直接更新文档,而无需从服务器中取出文档,更新文档然后发回。

也可以使用基于集合的查询在多个文档上运行修补程序,有关更多信息,请参见here。这让你做相当于

UPDATE Users 
SET IsActive = false 
WHERE LastLogin < '2010-05-10' 
18

乌鸦也有对象跟踪。所以以下工作:

var doc = _session.Load<MyDocType>(docId); 
doc.PropertyToChange = "New Value"; 
_session.SaveChanges(); 
+0

说,'MyDocType'含有较少的领域比在文档中,这是否会删除所有不在'MyDocType'中的字段? – Caramiriel 2016-03-11 09:19:52

+0

@Caramiriel是的 - 因为RavenDB是“自我修复”的,所以当您保存文档时,只有该类的字段将被保存,并且文档中的任何其他数据都将被删除。这种行为可以通过设置'new DocumentStore()。Conventions.PreserveDocumentPropertiesNotFoundOnModel'来改变。 – adrian 2016-04-12 14:01:52