Вопрос

Какие существуют соображения для переноса приложения из NHibernate на с 1.2 по 2.0?Что такое кардинальные изменения по сравнению срекомендуемые изменения?

Есть ли проблемы с отображением?

Это было полезно?

Решение

Основные изменения в NHibernate 2.0

Если у вас хорошее тестовое покрытие, это трудоемкая работа.

Редактировать:Мы обновили его сегодня утром.В этом нет ничего особенного.Вы должны очистить () сеанс после удаления.Пространство имен Expression было переименовано в Criterion.Все это описано по ссылке выше.Сопоставления не нуждаются в изменениях.Это довольно прозрачно.О, и транзакции повсюду, но вы, вероятно, уже делали это.

Кстати, вот интересный взгляд на изменения: http://codebetter.com/blogs/patricksmacchia/archive/2008/08/26/nhibernate-2-0-changes-overview.aspx

Другие советы

Я нашел ответ здесь:

http://blog.domaindotnet.com/2008/08/24/nhibernate-20-gold-released-must-wait-for-linq-to-nhibernate/

выпуск золота 2.0.0.GA

ОСНОВНЫЕ ИЗМЕНЕНИЯ с NH1.2.1GA на NH2.0.0

  • Инфраструктура

    • .NET 1.1 больше не поддерживается
    • Nullables.NHibernate больше не поддерживается (используйте nullable типы .NET 2.0)
    • Контриб пошевелился.Новое Местоположение
  • Время компиляции

    • NHibernate.Пространство имен выражений было переименовано в NHibernate.Критерий
    • У IInterceptor есть дополнительные методы.(IsUnsaved был переименован в IsTransient)
    • Внутренняя стратегия
    • Это тип
    • IEntityPersister ( идентификатор пользователя )
    • IVersionType ( иверсионный тип )
    • Ибатчер
    • Тип IUserCollectionType
    • IEnhancedUserType IEnhancedUserType
    • IPropertyAccessor
    • ValueTypeType переименован в PrimitiveType
  • Возможные критические изменения для внешних фреймворков

  • Различные классы были перемещены между пространствами имен
  • Различные классы были переименованы (в соответствии с именами Hibernate 3.2).
  • Интерфейс ISession имеет дополнительные методы
  • ICacheProvider ( поставщик ICacheProvider )
  • Критерий
  • CriteriaQueryTranslator ( Переводчик критериев )

  • Время инициализации

    • <nhibernate> раздел в App.config больше не поддерживается и будет проигнорирован.Схема конфигурации для файла конфигурации и App.config теперь идентична, а название раздела App.config:<hibernate-configuration>
    • <hibernate-configuration> используйте другую схему, и все имена свойств будут проверены
    • свойства конфигурации больше не имеют префикса “hibernate.”, если раньше вы указывали “hibernate.dialect”, то теперь вы указываете просто “диалект”.
    • Все именованные запросы будут проверены во время инициализации, если какой-либо из них недействителен, будет выдано исключение (при необходимости может быть отключен).
    • Более строгие проверки проксирующих классов (все открытые методы должны быть виртуальными)

  • Время выполнения

    • SaveOrUpdateCopy() возвращает новый экземпляр объекта без изменения исходного
    • Автоматическая очистка не будет происходить вне транзакции - транзакции базы данных никогда не являются необязательными, все взаимодействия с базой данных должны происходить внутри транзакции, независимо от того, какие данные вы читаете или записываете.
    • NHibernate вернет long для запросов count(*) на SQL Server
    • <formula> при необходимости должен содержать скобки
    • Эти имена функций HQL могут вызвать конфликт в вашем HQL зарезервированными именами являются:
      • подстрока
      • найти
      • обрезать
      • длина
      • bit_length ( длина бита)
      • сливаться
      • нулевой
      • пресс
      • мод
      • sqrt
      • верхний
      • ниже
      • отлитый
      • извлечь
      • конкат
      • current_timestamp - отметка текущего времени
      • системный сервер
      • второй
      • минута
      • час
      • день
      • месяц
      • год
      • str
    • <any> когда meta-type=”class”, постоянным типом является строка, содержащая класс.Полное имя
      • Чтобы задать параметр в запросе, вы должны использовать setParameter(”paraName”, typeof(YourClass).Полное имя, NHibernateUtil.ClassMetaType)

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

  • <any> :метатип по умолчанию - “string” (был “class”)
  • Лицензировано под: CC-BY-SA с атрибуция
    Не связан с StackOverflow
    scroll top