Как я могу отобразить обнуляемое перечисление в NHibernate? - PullRequest
1 голос
/ 07 мая 2009

Мне не удалось сохранить обнуляемое перечисление, используя NHibernate с конфигурацией Fluent NHibernate. NHibernate пытается сохранить строковое представление перечисления, и я получаю ошибку

System.Data.SqlClient.SqlException: Conversion failed when converting the 
nvarchar value 'VGS' to data type tinyint.

Свойство определено как

public virtual CostContributor? ReplacementContributor { get; private set; }

и отображение

Map(x => x.ReplacementContributor).CustomTypeIs(typeof(CostContributor?));

Я пробовал каждую комбинацию CustomTypeIs и CustomSqlTypeIs, включая замену int? или байт? для CostContributor ?, но ничего не сработало. Он отлично работает, если я сделаю его ненулевым типом.

Можно ли отобразить обнуляемое перечисление в NHibernate? Или это ошибка или неподдерживаемая функция в NHibernate?

Если я не смогу выполнить эту работу, я добавлю неопределенное значение в мое перечисление как обходной путь.

Ответы [ 2 ]

2 голосов
/ 28 сентября 2009

Это была ошибка , и она была исправлена ​​.

0 голосов
/ 07 мая 2009

Не уверен, как это сделать правильно, но вот еще один обходной путь:

Добавьте класс с именем CostContributorEntity. Класс будет иметь только свойство: ID типа CostContributor. Вам не нужно создавать настоящую таблицу, если вы не хотите.

В потребляющих классах измените ReplacementContributor на тип CostContributorEntity и отобразите его как Ссылки (x => x.ReplacementContributor);

Используйте session.Load (CostContributor.Blahblah1) для создания экземпляра CostContributorEntity, который можно назначить ReplacementContributor.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...