NHibernate и sqlite - не удалось скомпилировать документ сопоставления - PullRequest
0 голосов
/ 21 декабря 2009

Я пытаюсь запустить NHibernate поверх sqlite. у меня есть два проекта: 1. Orange.Database - содержит pocos и daos и все остальное 2. Orange.GUI - держит графический интерфейс ...

когда программа достигает значения:

  Configuration config = new Configuration();
  config.AddAssembly("Orange.Database");
  sessionFactory = config.Configure().BuildSessionFactory();

выдается исключение: «Не удалось скомпилировать документ сопоставления: Orange.Database.Pocos.City.hbm.xml» внутреннее исключение: «Не удалось найти диалект в конфигурации»

city.hbm.xml:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
               namespace="Orange.Database.Pocos">


<class name="City" table="Cities">
<id name="Id">
  <column name="Id" sql-type="int" not-null="true"/>
  <generator class="identity"/>
</id>

<property name="Name">
  <column name="name" not-null="true"/>
</property>

<property name="IsTaxFree">
  <column name="is_tax_free" not-null="true"/>
</property>
</class>
</hibernate-mapping>

Я попытался написать сборку, а затем удалил ее ..

файл app.config:

<?xml version="1.0" encoding="utf-8" ?>

<configSections>

<section name="hibernate-configuration"
type="NHibernate.Cfg.ConfigurationSectionHandler,NHibernate"/>

  </configSections>

<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.SQLiteDriver</property>
  <property name="connection.connection_string">
    Data Source=C:\Users\Nadav\Documents\Visual Studio 2005\Projects\orange\DB\OrangeDB\OrangeDB.db;Version=3
  </property>
  <property name="dialect">NHibernate.Dialect.SQLiteDialect</property>
  <property name="query.substitutions">true=1;false=0</property>

</session-factory>
</hibernate-configuration>
</configuration>

Я пробовал другое расположение файла базы данных .. я пытался удалить configSections и некоторые другие идеи, которые я нашел в сети ...

Я использую против 2005 Версия NHibernate: 2.0.1.4000

Есть предложения?

Ответы [ 3 ]

2 голосов
/ 04 августа 2010

Сделайте это в вашем коде:

Configuration config = new Configuration();
config.Configure();
config.AddAssembly("Orange.Database");
sessionFactory = config.BuildSessionFactory();
0 голосов
/ 18 апреля 2012

Я получил то же самое "не удалось скомпилировать ошибку", но я не использую sqlite.

Я получил его, потому что дважды вызывал метод configure из экземпляра конфигурации nhibernate.

0 голосов
/ 21 декабря 2009

Сначала загрузите последнюю стабильную версию NHibernate, 2.1.2.

Во-вторых, попробуйте создать файл конфигурации с именем 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.SQLiteDriver</property>
        <property name="connection.connection_string">
            Data Source=C:\Users\Nadav\Documents\Visual Studio 2005\Projects\orange\DB\OrangeDB\OrangeDB.db;Version=3
        </property>
        <property name="dialect">NHibernate.Dialect.SQLiteDialect</property>
        <property name="query.substitutions">true=1;false=0</property>
        <property name="proxyfactory.factory_class">NHibernate.ByteCode.Castle.ProxyFactoryFactory, NHibernate.ByteCode.Castle</property>
    </session-factory>
</hibernate-configuration>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...