Система карт NHibernate.Type - PullRequest
       0

Система карт NHibernate.Type

4 голосов
/ 16 сентября 2011

Когда я сопоставляю сущность со свойством типа System.Type, я знаю, что NHibernate сопоставляет это с DbType.String, содержащим полное имя сборки, и я вижу, что в таблице столбец типа содержит значения типа TarkusSoftware.Abstract.ITask, TarkusSoftware.Abstract, версия = 1.0.0.0, культура = нейтральная, PublicKeyToken = ноль ".

Что это значит для долгосрочной разработки, что произойдет, когда мы в конечном итоге изменим версию сборки, например, на 2.0.0.0? Я полагаю, что NHibernate не сможет увлажнить объект, так как он не сможет найти тип с его именем, соответствующим сборке. В этом случае как перейти к отображению System.Type, чтобы обеспечить совместимость в будущем? Спасибо:)

1 Ответ

3 голосов
/ 16 сентября 2011

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

Я только что проверил источник NH, вы правы. Он использует только тип и имя сборки, игнорируя версию и т. Д. Если интересно, проверьте код в: TypeNameParser.Parse ()

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