【发布时间】:2011-07-21 13:13:31
【问题描述】:
我想将枚举存储为 RavenDB 文档中的整数值,而不是全名。这样做,我想确保更改枚举值的名称不会破坏持久性。
使用 FluentNHibernate,我可以创建自定义约定,但我没有找到任何与 RavenDB 匹配的内容。
【问题讨论】:
标签: enums nosql integer conventions ravendb
我想将枚举存储为 RavenDB 文档中的整数值,而不是全名。这样做,我想确保更改枚举值的名称不会破坏持久性。
使用 FluentNHibernate,我可以创建自定义约定,但我没有找到任何与 RavenDB 匹配的内容。
【问题讨论】:
标签: enums nosql integer conventions ravendb
您现在可以这样做:
store.Conventions.SaveEnumsAsIntegers = true;
【讨论】:
您可以通过创建一个 JsonConverter 来执行此操作,然后将其添加到 documentStore.Conventions.Converters。
事实上,我们明确存储了名称,因此您只需从 documentStore.Conventions.Converters 中删除 EnumJsonConverter 即可
【讨论】:
Session.Advanced.Conventions.CustomizeJsonSerializer = serializer => { serializer.Converters.Remove(serializer.Converters.Single(x => x is Raven.Abstractions.Json.JsonEnumConverter); };
从今天开始,您可以这样做:
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
【讨论】:
store.Conventions.SaveEnumsAsIntegers = true;。