仅更改成员的序列化

时间:2013-01-13 17:26:45

标签: c# mongodb serialization convention

我是MongoDB的新手,想要有效地序列化我的对象。这意味着在更新对象时,我只想写入更改的字段。如果我的对象在列表中有子对象,我只想添加或删除更改的子对象。那是因为如果我有一篇包含1000条评论的帖子,我想避免在每次发布新帖子时序列化整个对象。

我找到的只是约定ignoreifempty,ignoreisdefault和shouldserializexyz模式。

是否可以编写像ignoreifnotchanged这样的约定(我跟踪我的对象中的脏字段)或者是否有更通用的shouldserializexyz,因为我不想为每个属性编写方法。

1 个答案:

答案 0 :(得分:0)

您要查看的是具有update参数的Update方法,该参数指定您要更新的字段。

您可以使用“更新”构建器来构建更新参数值。请看:

Update.Set(name, value)
Update.Push(name, value)

(还有更多)。

您可以将Update方法链接在一起以一次更新多个字段。

目前没有内置的更改跟踪,因此您必须跟踪哪些字段已自行更改,并根据您对更改内容的了解构建更新参数。

还有一个与此相关的待处理JIRA功能请求。参见:

https://jira.mongodb.org/browse/CSHARP-237

如果您愿意,请对JIRA发表评论或投票。