Modifica lo siguiente

- La propiedad id que definiste al final pasala al principio del mapping.
Tambien puedes dejarlo mas simple

<id name="MusicianId" column="Musician_id">
      <generator class="identity" />
</id>

- También tu clase Musician lo podrías especificarlo con su namespace
cualificado

<class name="[NAMESPACE][.]Musician, Musician" table="musician" lazy="true"
>

- Las propiedades en tu clase se deben llamar igual como en el mapping, tal
cual.

- Define las propiedades como virtuales en tu clase con privates no va
andar nhibernate

- También no olvides que el hbm lo tienes que poner como recurso embebido

No olvides poner en el archivo config la declaracion de seccion de
nhibernate

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

Saludos


El 5 de febrero de 2013 19:07, Carlos Berdejo
<[email protected]>escribió:

> Buenas tardes,
>
> Estoy programando en c# con monodevelop, cada vez que trato hacer una
> consulta, me marca un excepcion no tengo idea de por donde buscar para
> corregirlo.
> Me pueden dar alguna sugerencia.
>
> *NHibernate.MappingException: Could not compile the mapping document: 
> */home/carlos/Escritorio/mono/castor/castor/Models/Mappings/Musician.hbm.xml
> ---> *System.Exception: XML declaration cannot appear in this state*
>
> *Web.config:*
>   <hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
>     <session-factory>
>       <property
> name="dialect">NHibernate.Dialect.PostgreSQLDialect</property>
>       <property
> name="connection.connection_string">Server=192.168.119.231;Database=test;User
> ID=castor;Password=castor;</property>
>       <property name="current_session_context_class">web</property>
>   <property name="show_sql">true</property>
>   <mapping assembly="castor" />
>     </session-factory>
>   </hibernate-configuration>
>
> *Musician.hbm.xml:*
> <?xml version="1.0"  encoding="utf-8" ?>
> <hibernate-mapping assembly="castor" namespace="castor.core"
> xmlns="urn:nhibernate-mapping-2.2">
>   <class name="Musician" table="musician" lazy="true" >
>     <property name="BirthYear">
>       <column name="birth_year" sql-type="integer" not-null="false" />
>     </property>
>     <property name="MusicianName">
>       <column name="musician_name" sql-type="text" not-null="false" />
>     </property>
>     <property name="FavoriteInstrument">
>       <column name="favorite_instrument" sql-type="text" not-null="false"
> />
>     </property>
>     <id name="MusicianId">
>       <generator class="identity" />
>       <column name="Musician_id" sql-type="integer" not-null="true" />
>     </id>
>   </class>
> </hibernate-mapping>
>
> *Musician.cs:*
> using System;
> using System.Text;
> using System.Collections.Generic;
> using System.Xml;
>
>
> namespace castor.core {
>  public class Musician {
> private int musicianId;
> private int birthYear;
> private string musicianName;
> private string favoriteInstrument;
> public Musician() { }
> }
> }
>
> *NhibernateHelper.cs:*
> static NHibernateHelper()
> {
>  // Get the mapping file path
> String mappingPath =
> HttpContext.Current.Server.MapPath("/Models/Mappings/");
>  // Setup the configuration
> Configuration config = new Configuration()
> .AddFile(mappingPath + "Musician.hbm.xml");
>  // Build the session factory
> sessionFactory = config.BuildSessionFactory();
> }
>
>  --
> --
> Para escribir al Grupo, hágalo a esta dirección:
> [email protected]
> Para más, visite: http://groups.google.com/group/NHibernate-Hispano
> ---
> Has recibido este mensaje porque estás suscrito al grupo
> "NHibernate-Hispano" de Grupos de Google.
> Para anular la suscripción a este grupo y dejar de recibir sus correos
> electrónicos, envía un correo electrónico a
> [email protected].
> Para obtener más opciones, visita https://groups.google.com/groups/opt_out
> .
>
>
>

-- 
-- 
Para escribir al Grupo, hágalo a esta dirección: 
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
--- 
Has recibido este mensaje porque estás suscrito al grupo "NHibernate-Hispano" 
de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos 
electrónicos, envía un correo electrónico a 
[email protected].
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.


Responder a