Store enum as integer in RavenDB
I would like to store Enums as integer-values inside a RavenDB-document instead of there full-name. Doing so, I would like to ensure, that changing the name of an enum-value, does not break persistence.
With FluentNHibernate, I can create a custom conventi开发者_C百科on, but I didn't find anything matching with RavenDB.
You can now just do:
store.Conventions.SaveEnumsAsIntegers = true;
You can do that by creating a JsonConverter to do this, then add it to the documentStore.Conventions.Converters
.
In fact, we store the name explicitly, so you can just remove the EnumJsonConverter from documentStore.Conventions.Converters
As of today you can do this:
store.Conventions.CustomizeJsonSerializer = jsonSerializer =>
{
jsonSerializer.Converters.Remove(jsonSerializer.Converters.Where(c =>
c.GetType() == typeof(JsonEnumConverter)).First());
};
store.Conventions.QueryEnumsAsIntegers = true;
Source: http://groups.google.com/group/ravendb/browse_thread/thread/18fef7b38252b27d
精彩评论