Как я могу использовать класс конфигурации NHibernate с Fluent NHibernate - PullRequest
1 голос
/ 19 ноября 2009

Я хочу проявлять гибкость даже после развертывания своего кода, поэтому мне нравится использовать файл hibernate.cfg.xml для настройки NHibernate. Теперь я планирую использовать Fluent NHibernate для выполнения всех моих карт Class => Table. Можно ли использовать старый класс конфигурации NHibernate для настройки Fluent NHibernate?

Ответы [ 2 ]

2 голосов
/ 19 ноября 2009

Да, если вы используете свободный API конфигурации , метод Configure имеет перегрузку, которая принимает существующий экземпляр NHibernate Configuration, который может быть собран из вашего hibernate.cfg.xml.

0 голосов
/ 21 ноября 2009

Хорошо, так что это, очевидно, моя вина. Я попытался передать объект NHibernate Configurtion в метод Fluently.Configure (), но мой код выдавал всевозможные ошибки. Проблема была с версией пользователей NHibernate «Fluent-NHibernate». Я не знал, что атрибут класса прокси-фабрики теперь обязателен. Итак, в моем файле hibernate.cfg.xml этот атрибут отсутствовал. Это странно, Свободный NHibernate не дал мне никакой подсказки об этом. Именно когда я попытался использовать простой NHibernate, я обнаружил эту проблему. Ниже приведены различные версии моих файлов hibernate.cfg.xml. Надеюсь, это поможет будущим разработчикам.

Первая версия

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect,NHibernate</property>
    <property name="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=SchoolPilot;Integrated Security=True</property>
    <property name="show_sql">true</property>
  </session-factory>
</hibernate-configuration>

Вторая версия

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
  <session-factory>
    <property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
    <property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
    <property name="dialect">NHibernate.Dialect.MsSql2005Dialect,NHibernate</property>
    <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
    <property name="connection.connection_string">Data Source=.\SQLEXPRESS;Initial Catalog=SchoolPilot;Integrated Security=True</property>
    <property name="show_sql">true</property>
  </session-factory>
</hibernate-configuration>
...