Свойство / столбец Nullable string в nHibernate + Fluent - PullRequest
0 голосов
/ 10 февраля 2011

Я новичок во вселенной nHibernate, поэтому этот вопрос может быть идиотом .. У меня есть таблица с обнуляемым столбцом nvarchar. В отображении я использую это Map(c => c.Genero, "genero").Nullable(); В свойстве я использую trim для установки значения, поэтому у меня есть приватная строка и публичная виртуальная строка. Когда я делаю выбор в этой таблице, я получаю ошибку времени выполнения в установщике этого свойства. Я попытался передать это свойство Nullable, но я получаю сообщение об ошибке компиляции, говорящее The type 'string' must be a non-nullable value type in order to use it as parameter 'T' in the generic type or method 'System.Nullable<T>'.

Как я могу это сделать?

Спасибо всем!

UPDATE

Если я использую только свойство с {get; задавать; } работает нормально, но мне нужно обрезать.

1 Ответ

1 голос
/ 10 февраля 2011

Проблема может заключаться в том, что вы не можете обрезать пустую строку. Попробуйте:

public string Genero
{
    get { return _genero; }
    set { _genero = string.IsNullOrEmpty(value) ? value : value.Trim(); }
}

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

...