Я чувствую себя настолько глупо, что публикую это, но не вижу, что здесь не так. Я хотел увидеть горячие работы Nhibernate, чем я попал на сайт, скачал его и следовал краткому руководству по началу работы, но имел некоторые шансы - я использую MySql, и это не Продукт, а Пользователь в моем проекте, но неважно. ..
Когда я запускаю тест для генерации схемы, я получаю ошибку, вот информация об ошибке:
TestCase 'Uniflu.Domain.Tests.GenerateSchema_Fixture.Can_generate_schema'
failed: NHibernate.MappingException : Could not compile the mapping document:
Uniflu.Domain.Mappings.Usuario.hbm.xml
----> NHibernate.HibernateException : Could not instantiate dialect class
NHibernate.Dialect.MySqlDialect
----> System.TypeLoadException : Could not load type NHibernate.Dialect.MySqlDialect.
Possible cause: no assembly name specified.
em NHibernate.Cfg.Configuration.LogAndThrow(Exception exception)
em NHibernate.Cfg.Configuration.AddValidatedDocument(NamedXmlDocument doc)
em NHibernate.Cfg.Configuration.ProcessMappingsQueue()
em NHibernate.Cfg.Configuration.AddInputStream(Stream xmlInputStream, String name)
em NHibernate.Cfg.Configuration.AddResource(String path, Assembly assembly)
em NHibernate.Cfg.Configuration.AddAssembly(Assembly assembly)
E:\Projetos\Uniflu\Uniflu\Uniflu.Domain\Tests\GenerateSchema_Fixture.cs(17,0): em Uniflu.Domain.Tests.GenerateSchema_Fixture.Can_generate_schema()
--HibernateException
em NHibernate.Dialect.Dialect.InstantiateDialect(String dialectName)
em NHibernate.Dialect.Dialect.GetDialect(IDictionary`2 props)
em NHibernate.Cfg.Configuration.AddValidatedDocument(NamedXmlDocument doc)
--TypeLoadException
em NHibernate.Util.ReflectHelper.TypeFromAssembly(AssemblyQualifiedTypeName name, Boolean throwOnError)
em NHibernate.Util.ReflectHelper.ClassForName(String name)
em NHibernate.Dialect.Dialect.InstantiateDialect(String dialectName)
0 passed, 1 failed, 0 skipped, took 5,37 seconds (NUnit 2.5).
Мой hibernate.cfg.xml:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory name="Test">
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.MySqlDialect</property>
<property name="connection.connection_string">Server=Athenas;Database=uniflu;Uid=alaor;Pwd=test;</property>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>
Мой класс пользователя:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace Uniflu.Domain
{
public class Usuario
{
public virtual Guid Id { get; set; }
public virtual String Nome { get; set; }
public virtual String Email { get; set; }
public virtual String Senha { get; set; }
public virtual String Dica { get; set; }
public virtual DateTime DataCriado { get; set; }
public virtual DateTime UltimoAcesso { get; set; }
public virtual Boolean Ativo { get; set; }
}
}
My Usuario.hbm.xml:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Uniflu.Domain"
namespace="Uniflu.Domain">
<class name="Usuario">
<id name="Id">
<generator class="guid" />
</id>
<property name="Nome" />
<property name="Email" />
<property name="Senha" />
<property name="Dica" />
<property name="DataCriado" />
<property name="UltimoAcesso" />
<property name="Ativo" />
</class>
</hibernate-mapping>
Мое решение называется Uniflu, мой проект Uniflu.Domain, это проект библиотеки классов, структура каталогов выглядит следующим образом:
Uniflu
-> Uniflu.Domain
-> -> Свойства
-> -> Отзывы
-> -> Картография
-> -> -> Usuario.hbm.xml
-> -> Тесты
-> -> -> GenerateSchema_Fixture
-> -> hibernate.hbm.xml
-> -> Usuario.cs
Гайз, я не вижу, что я делаю неправильно ... Мне действительно нужен свет !! Пожалуйста !!
Заранее благодарен.