Я бы хотел хранить Enums в виде целочисленных значений внутри RavenDB-документа вместо полного имени.При этом я хотел бы убедиться, что изменение имени перечисляемого значения не нарушает постоянство.
С FluentNHibernate я могу создать пользовательское соглашение, но я не нашел ничего подходящего с RavenDB.
Теперь вы можете просто сделать:
store.Conventions.SaveEnumsAsIntegers = true;
Вы можете сделать это, создав JsonConverter для этого, затем добавив его к documentStore.Conventions.Converters.
documentStore.Conventions.Converters
Фактически, мы сохраняем имя явно, поэтому вы можете просто удалить EnumJsonConverter из documentStore.Conventions.Converters
На сегодняшний день вы можете сделать это:
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