Boa noite,
Não consigo compilar o código passado no vídeo para completar a aula 1, segue o erro:
Exception:
An unhandled exception of type 'NHibernate.MappingException' occurred in NHibernate.dll
Additional information: Could not compile the mapping document: Loja.Mapeamentos.Usuario.hbm.xml
Call Stack:
Loja.exe!Loja.Infraestrutura.NHibernateHelper.RecuperaConfiguracao() Line 18 C#
Loja.exe!Loja.Infraestrutura.NHibernateHelper.GeraSchema() Line 25 C#
Loja.exe!Loja.Program.Main(string[] args) Line 14 C#
[External Code]
Segue os códigos do projeto:
hibernate.dfg.xml
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory>
<property name="connection.driver_class">NHibernate.Driver.MySqlDataDriver</property>
<property name="connection.provider">NHibernate.Connetion.DiverConnectionProvider</property>
<property name="dialect">NHibernate.Dialect.MSQL5Dialect</property>
<property name="connection.connection_string">
Server=Localhost;Database=loja;Uid=root;Pwd=478512;
</property>
<property name="show_sql">true</property>
</session-factory>
</hibernate-configuration>
Usuario.hbm.xml:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Loja"
namespace="Loja.Entidades">
<class name ="Usuario">
<id name="Id">
<generator class ="identity"/>
</id>
<property name="Nome"/>
</class>
</hibernate-mapping>
Produto.hbm.xml:
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="Loja"
namespace="Loja.Entidades">
<class name ="Produto">
<id name="Id">
<generator class ="identity"/>
</id>
<property name="Nome"/>
<property name="Preco"/>
</class>
</hibernate-mapping>
Classe Usuario:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Loja.Entidades
{
public class Usuario
{
public virtual int Id { get; set;}
public virtual string Nome { get; set;}
}
}
Classe Produto
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Loja.Entidades
{
public class Produto
{
public virtual int Id { get; set; }
public virtual string Nome { get; set; }
public virtual double Preco { get; set; }
}
}
Classe NHibernateHelper:
using NHibernate.Cfg;
using NHibernate.Tool.hbm2ddl;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace Loja.Infraestrutura
{
public class NHibernateHelper
{
public static Configuration RecuperaConfiguracao()
{
Configuration cfg = new Configuration();
cfg.Configure();
cfg.AddAssembly(Assembly.GetExecutingAssembly());
return cfg;
}
public static void GeraSchema()
{
Configuration cfg = RecuperaConfiguracao();
new SchemaExport(cfg).Create(true, true);
}
}
}
Apenas aparece o terminal sem nada escrito, os arquivos hbm.xml de mapeamento estão configurados como Embedded Resource.