Hola a todos, de nuevo muchas gracias por sus respuestas, cada dia aprendo un poco mas sobre esto que es nhibernate y en eso han tenido mucho que ver, cuanto más leo más hacia atrás voy!, esta vez mi consulta es sobre el schema de mi db, como crearlos y como deberian estar definidos los archivos de mapping xml para crearlos? He escuchado, ( y no me maten por esto se que es muy basico ) que por ejemplo con agregar los mapping y la clase del dominio no necesito ni abrir el SQL para crear la tabla (creando mi schema ), esto no lo sabia y ya tengo creados mi xml. La pregunta es qué deberia estar definido en los xml para que el schema se cree y cómo se crea.
Adjunto dos xml de ciudad y provincia ( como ejemplo ) y las clases de dominio correspondientes ( por las dudas ). y mi hibernate.cfg.xml.
hibernate.cfg.xml ------------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-configuration xmlns="urn:nhibernate-configuration-2.2">
<session-factory name="ModeloDeDominioSSG">
<property name="connection.provider">NHibernate.Connection.DriverConnectionProvider</property>
<property name="connection.driver_class">NHibernate.Driver.SqlClientDriver</property>
<property name="dialect">NHibernate.Dialect.MsSql2005Dialect</property>
<property name="connection.connection_string">Data Source=localhost;Initial Catalog=tesis;Integrated Security=True</property>
<property name="current_session_context_class"> uNhAddIns.SessionEasier.Conversations.ThreadLocalConversationalSessionContext, uNhAddIns </property>
<property name="prepare_sql">false</property>
<property name="use_outer_join">false</property>
<property name="isolation">ReadCommitted</property>
<property name="query.substitutions">true 1, false 0, yes 'Y', no 'N'</property>
<property name="show_sql">true</property>
<mapping assembly="ModeloDeDominioSSG" />
</session-factory>
</hibernate-configuration>
XML PROVINCIA --------------------------------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="ModeloDeDominioSSG" namespace="ModeloDeDominioSSG.ModeloDeDominio" auto-import="true">
<class name="Provincia" lazy="true" table="Provincias">
<!--Identificador de la AProvincia-->
<id name="IdProvincia" column="idProvincia" type="int">
<generator class="native" />
</id>
<!--Propiedades de la Provincia-->
<property name="Nombre" column="nombre" />
<property name="Eliminado" column="eliminado" />
<bag name="ListCiudades" cascade="all-delete-orphan" lazy="true">
<key column="idProvincia"/>
<one-to-many class="Ciudad"/>
</bag>
</class>
</hibernate-mapping>
XML CIUDAD ----------------------------------------------------------------------
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="ModeloDeDominioSSG" namespace="ModeloDeDominioSSG.ModeloDeDominio" auto-import="true">
<class name="Ciudad" lazy="true" table="Ciudades">
<!--Identificador del ContactoPersonal-->
<id name="IdCiudad" column="idCiudad" type="int">
<generator class="native" />
</id>
<!--Propiedades del ContactoPersonal-->
<property name="Nombre" column="nombre" />
<property name="Eliminado" column="eliminado" />
<!--Relación 1..* de ContactoPersonal con Cargo-->
<many-to-one name="AProvincia" column="idProvincia" class="Provincia" cascade="none"/>
</class>
</hibernate-mapping>
CLASE PROVINCIA ----------------------------------------------------------------
using System.Collections.Generic;
namespace ModeloDeDominioSSG.ModeloDeDominio
{
public class Provincia {
//*****Propiedades*****
private int idProvincia;
private string nombre;
private int eliminado;
public virtual int IdProvincia
{
get { return idProvincia;}
set { idProvincia = value;}
}
public virtual string Nombre
{
get { return nombre;}
set { nombre = value;}
}
public virtual int Eliminado
{
get { return eliminado; }
set { eliminado = value; }
}
//*****Referencias*****
private IList<Ciudad> listCiudades;
public virtual IList<Ciudad> ListCiudades
{
get { return listCiudades; }
set { listCiudades = value; }
}
public override bool Equals(object obj)
{
if (object.ReferenceEquals(this, obj)) return true;//el mismo obj de la misma session
if (!(obj is Provincia)) return false;// si es de tipo Alarma
Provincia that = (Provincia)obj;
if (this.IdProvincia != that.IdProvincia) return false;//si tiene las mismas propiedades
return true;
}
public override int GetHashCode()
{
return IdProvincia.GetHashCode();
}
}
}
CASE CIUDAD ------------------------------------------------------------------------
namespace ModeloDeDominioSSG.ModeloDeDominio
{
public class Ciudad {
//*****Propiedades*****
private int idCiudad;
private string nombre;
private int eliminado;
public virtual int IdCiudad
{
get { return idCiudad;}
set { idCiudad = value;}
}
public virtual string Nombre
{
get { return nombre;}
set { nombre = value;}
}
public virtual int Eliminado
{
get { return eliminado; }
set { eliminado = value; }
}
//*****Referencias*****
private Provincia aProvincia;
public virtual Provincia AProvincia
{
get { return aProvincia; }
set { aProvincia = value; }
}
//*****Métodos*****ddd
public override bool Equals(object obj)
{
if (object.ReferenceEquals(this, obj)) return true;//el mismo obj de la misma session
if (!(obj is Ciudad)) return false;// si es de tipo Alarma
Ciudad that = (Ciudad)obj;
if (this.IdCiudad != that.IdCiudad) return false;//si tiene las mismas propiedades
return true;
}
public override int GetHashCode()
{
return IdCiudad.GetHashCode();
}
-------------------------------------------------------------
No encontré ( seguramente por impericia mia) informacion de ayuda acerca de esto que un novato ( muy novato ) como yo, pueda entender, si está por ahi se agradece mucho.
Mil gracias por tanta ayuda!, prometo que cuando aprenda ayudar como ustedes lo hicieron conmigo!, Si de esta forma no se adjunta el codigo disculpas,
saludos,
Nicolas.
--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección: NHibernate-Hispano <at> googlegroups.com
Para más, visite: http://groups.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---