将枚举存储为RavenDB中的整数

时间:2011-07-21 13:13:32

标签: enums nosql integer conventions ravendb

我想将Enums存储为RavenDB文档中的整数值而不是全名。这样做,我想确保,更改枚举值的名称,不会破坏持久性。

使用FluentNHibernate,我可以创建一个自定义约定,但是我找不到任何与RavenDB相匹配的内容。

3 个答案:

答案 0 :(得分:9)

您现在可以这样做:

store.Conventions.SaveEnumsAsIntegers = true;

答案 1 :(得分:8)

您可以通过创建JsonConverter来执行此操作,然后将其添加到documentStore.Conventions.Converters

事实上,我们明确地存储了名称,因此您可以从documentStore.Conventions.Converters

中删除EnumJsonConverter

答案 2 :(得分:3)

截至今天,您可以这样做:

store.Conventions.CustomizeJsonSerializer = jsonSerializer =>
{   
    jsonSerializer.Converters.Remove(jsonSerializer.Converters.Where(c =>
    c.GetType() == typeof(JsonEnumConverter)).First());
}; 

store.Conventions.QueryEnumsAsIntegers = true;

来源:http://groups.google.com/group/ravendb/browse_thread/thread/18fef7b38252b27d