Использование EnumTypes с Fluent NHibernate и Automapping - PullRequest
1 голос
/ 12 мая 2011

Я изучаю проект, использующий nhibernate, и у меня есть вопрос о том, как наилучшим образом выполнить следующий сценарий, используя FluentNhibernate 1.0.0.593 и NHibernate 2.1.0.4000

Мои таблицы выглядят так:

DeviationLog:  
  Id uniqueidentifier  
  DeviationType uniqueidentifier  
  IncomingMessageId uniqueidentifier  

DeviationType:  
  Id uniqueidentifier  
  DeviationTypeCategory uniqueidentifier  
  DeviationMessage nvarchar(255)  

DeviationTypeCategory:  
  Id uniqueidentifier  
  DeviationTypeCategoryName nvarchar(255)  

В настоящее время я использую автоматическое сопоставление с соглашениями.

Когда я создаю экземпляр Deviation, я хотел бы иметь возможность сделать что-то вроде следующего:

var deviation = new Deviation{DeviationType=DeviationEnum.NoMatchMobileNumber}; 

Теперь, насколько мне известно, перечисления поддерживают только целочисленные типы, поэтому без альтернативного подхода это не сработает.Я подумывал о том, чтобы использовать словарь для этого, например Dictionary<DeviationEnum,Guid>, и я также подозреваю, что мне может понадобиться использовать UserTypeConvention<T>, чтобы как-то это сделать.

У кого-нибудь есть опыт, которым можно поделиться?

1 Ответ

0 голосов
/ 12 мая 2011

То, что я традиционно делал, это использовал пользовательский класс IUserType, который переводил бы между перечисленным enum и тем, как он будет сохраняться.Однако для этого требовался собственный IUserType для каждого типа перечисления.

...