Я пытался исправить свою проблему в течение нескольких часов, поэтому я думаю, что пришло время разместить вопрос здесь.
Проблема
Когда я запускаю свой модульный тест, чтобы проверить мою конфигурацию гибернации, это дает мне исключение:
Произошло исключение при разборе
конфигурация: «сборка»
атрибут не объявлен.
Мой код
hibernate.cfg.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2" assembly="Pccleaner.Dmt">
<session-factory>
<property name='proxyfactory.factory_class'>NHibernate.ByteCode.LinFu.ProxyFactoryFactory, NHibernate.ByteCode.LinFu</property>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.connection_string">Database=****;Data Source=localhost;User Id=****;Password=*****</property>
<property name="dialect">NHibernate.Dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<mapping assembly="Pccleaner.Dmt"/>
</session-factory>
myunittest.cs
var cfg = new Configuration().Configure();
new SchemaExport(cfg).Execute( false, true, false);
Что я пробовал
Я нашел примеры добавления вручную сборки. Я предпочитаю устанавливать свою сборку в файле конфигурации, но чтобы она заработала, я попробовал этот код:
var cfg = new Configuration();
cfg.AddAssembly("Pccleaner.Dmt");
cfg.Configure();
new SchemaExport(cfg).Execute( false, true, false);
Этот код привел к следующему исключению:
Не удалось скомпилировать документ сопоставления: Pccleaner.Dmt.Mappings.Project.hbm.xml
----> System.InvalidOperationException: не удалось найти диалект в конфигурации
Файл конфигурации Project.hbm.xml имеет следующий вид:
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Pccleaner.Dmt" namespace="Pccleaner.Dmt">
<class name="Project" table="pcc_dmt_project">
<id name="ID" column="id">
<generator class="identity" />
</id>
<property name="Name" not-null="true" column="name" length="50"/>
<property name="SvnRepository" not-null="true" column="svn_repository" />
<property name="SvnUserName" not-null="false" column="svn_user_name"/>
<property name="SvnUserPassword" not-null="false" column="svn_user_password"/>
<bag name="Revisions" cascade="all">
<key column="project_id"/>
<one-to-many class="Pccleaner.Dmt.Revision"/>
</bag>
</class>
</hibernate-mapping>
Project.cs:
namespace Pccleaner.Dmt {
public class Project {
public virtual int ID { get; set; }
public virtual string Name { get; set; }
public virtual string SvnRepository { get; set; }
public virtual string SvnUserName { get; set; }
public virtual string SvnUserPassword { get; set; }
public virtual IList<Revision> Revisions { get; set; }
}
}
Поиск различных исключений не дает мне никаких подсказок, чтобы это исправить. Он работал до того, как я удалил дублированный конфигурацию гибернации в моем тестовом проекте.
Для каждого файла конфигурации Hibernate я изменил свойства, чтобы встроить его в качестве ресурса. Конфигурационный файл hibernate копируется в мою папку bin моего тестового проекта.
Я новичок в спящем режиме, и различные исключения и способы настройки спящего режима вызывают у меня головокружение. Ребята, можете ли вы помочь мне, пожалуйста?
offtopic: создание новой учетной записи на этом веб-сайте не работает: исключение не найдено.