Хранить enum как целое число в RavenDB - PullRequest
11 голосов
/ 21 июля 2011

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

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

Ответы [ 3 ]

9 голосов
/ 02 сентября 2012

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

store.Conventions.SaveEnumsAsIntegers = true;
8 голосов
/ 21 июля 2011

Вы можете сделать это, создав JsonConverter для этого, затем добавив его к documentStore.Conventions.Converters.

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

3 голосов
/ 29 октября 2011

На сегодняшний день вы можете сделать это:

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

...