Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Erro ao compilar o projeto: Não reconhece o mapeamento : Exceção Sem Tratamento: NHibernate.MappingException: Could not compile the mapping document: loja.Mapeamentos.Usuario.hbm.xml

Olá pessoal tudo bem ? Estou com esse problema e acho que é algo comum entre outras pessoas no grupo. Não consigo avançar devido ao problema, já chequei tudo que podia e não sei como resolver. Alguém pode ajudar, fazendo o favor ?



Exceção Sem Tratamento: NHibernate.MappingException: Could not compile the mapping document: 
loja.Mapeamentos.Usuario.hbm.xml ---> System.InvalidOperationException: Erro no documento XML (1, 2). ---> 
System.InvalidOperationException: <hibernate-mapping xmlns='unr:nhibernate-mapping-2.2'> não era esperado.
   em Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderHbmMapping.Read109_hibernatemapping()
   --- Fim do rastreamento de pilha de exceções internas ---
   em System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events)
   em System.Xml.Serialization.XmlSerializer.Deserialize(TextReader textReader)
   em NHibernate.Cfg.NamedXmlDocument..ctor(String name, XmlDocument document, XmlSerializer serializer)
   em NHibernate.Cfg.NamedXmlDocument..ctor(String name, XmlDocument document)
   em NHibernate.Cfg.Configuration.LoadMappingDocument(XmlReader hbmReader, String name)
   --- Fim do rastreamento de pilha de exceções internas ---
   em NHibernate.Cfg.Configuration.LogAndThrow(Exception exception)
   em NHibernate.Cfg.Configuration.LoadMappingDocument(XmlReader hbmReader, String name)
   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)
   em loja.Infra.NHibernateHelper.RecuperaConfiguracao() na C:\Pessoal\Faculdade\softblue\alura\nhibernate\loja\loja\Infra\NHibernateHelper.cs:linha 19
   em loja.Infra.NHibernateHelper.GeraSchema() na C:\Pessoal\Faculdade\softblue\alura\nhibernate\loja\loja\Infra\NHibernateHelper.cs:linha 25
   em loja.Program.Main(String[] args) na C:\Pessoal\Faculdade\softblue\alura\nhibernate\loja\loja\Program.cs:linha 14

Usuario.hbm.xml

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

<hibernate-mapping xmlns="unr:nhibernate-mapping-2.2"
                   assembly="loja" namespace="loja.Entidades">

    <class name="Usuario">
      <id name="Id">
        <generator class="identify"/>
      </id>
      <property name="Nome" />

    </class>

</hibernate-mapping>

Usuario.cs

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; }

    }
}

NHibernateHelper.cs

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.Infra
{
    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);
        }

    }
}

hibernate.cfg.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.Connection.DriverConnectionProvider</property>
    <property name="dialect">NHibernate.Dialect.MySQL5Dialect</property>

    <property name="connection.connection_string">Server=localhost;Database=loja;Uid=root;Pwd=root;</property>

    <property name="show_sql">true</property>

  </session-factory>
</hibernate-configuration>
2 respostas
solução!

Olá Cesar,

na exceção ele fala a seguinte mensagem <hibernate-mapping xmlns='unr:nhibernate-mapping-2.2'> não era esperado.. Ou seja, ele não entendeu este comando no seu Usuario.hbm.xml. O que aconteceu é que está escrito unr:nhibernate-mapping-2.2, mas deveria ser urn:nhibernate-mapping-2.2.

Lucas, Muito obrigado era isso mesmo, passei por diversas vezes olhando e não notei esse detalhe. Valeu...