Сохранить перечисление как целое число в RavenDB

Я хотел бы сохранить Enums как целочисленные значения внутри RavenDB-документа вместо полного имени. Сделав это, я хотел бы убедиться, что изменение имени значения enum не нарушает настойчивость.

С FluentNHibernate я могу создать пользовательское соглашение, но я не нашел ничего подходящего с RavenDB.

Ответ 1

Теперь вы можете просто сделать:

store.Conventions.SaveEnumsAsIntegers = true;

Ответ 2

Это можно сделать, создав JsonConverter для этого, затем добавьте его в documentStore.Conventions.Converters.

Фактически, мы сохраняем имя явно, поэтому вы можете просто удалить EnumJsonConverter с documentStore.Conventions.Converters

Ответ 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