Hola quisiera saber si alguien pudiera decirme porque no me funciona la
siguiente estructura
1_ Tablas:
Entidad
-------
PK EntidadId [int, Autoincremental].
PK EntidadTipo [Varchar(50), Discriminador].
Nombre [varchar(50)]
Email
-----
PK EmailId [int, Autoincremental].
Email [varchar(255)].
FK EntidadId [Relacion entre Email y Entidad].
FK EntidadTipo [Relacion entre Email y Entidad].
2_ Mapeos
Entidad
-------
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0"
schema="dbo">
<class name="EkoGroup.Herencia.NE.NE_Entidad,
EkoGroup.Herencia.NE" table="Entidad" discriminator-value="Entidad">
<id name="EntidadId" type="Int32"
column="EntidadId">
<generator class="identity"
/>
</id>
<discriminator column="EntidadTipo"
type="String" />
<property name="Nombre" column="Nombre"
type="String" />
<bag name="Emails" inverse="true"
cascade="all">
<key>
<column
name="EntidadId_EntidadId" />
<column
name="EntidadId_EntidadTipo" />
</key>
<one-to-many
class="EkoGroup.Herencia.NE.NE_Email, EkoGroup.Herencia.NE" />
</bag>
</class>
</hibernate-mapping>
Email
-----
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.0"
schema="dbo">
<class name="EkoGroup.Herencia.NE.NE_Email,
EkoGroup.Herencia.NE" table="Email">
<id name="EmailId" type="Int32"
column="EmailId">
<generator class="identity"
/>
</id>
<property name="Email" column="Email"
type="String" />
<many-to-one name="Entidad"
class="EkoGroup.Herencia.NE.NE_Entidad, EkoGroup.Herencia.NE">
<column
name="EntidadId_EntidadId" />
<column
name="EntidadId_EntidadTipo" />
</many-to-one>
</class>
</hibernate-mapping>
3_ Clases
Entidad
-------
public class NE_Entidad
{
private System.Int32 _EntidadId;
private System.String _Nombre;
private System.Collections.IList _Emails;
public virtual System.Int32 EntidadId
{
get{return _EntidadId;}
set{_EntidadId = value;}
}
public virtual System.String Nombre
{
get{return _Nombre;}
set{_Nombre = value;}
}
public virtual System.Collections.IList Emails
{
get{return _Emails;}
set{_Emails = value;}
}
}
Email
-----
public class NE_Email
{
private System.Int32 _EmailId;
private System.String _Email;
private NE_Entidad _Entidad;
public virtual System.Int32 EmailId
{
get{return _EmailId;}
set{_EmailId = value;}
}
public virtual System.String Email
{
get{return _Email;}
set{_Email = value;}
}
public virtual NE_Entidad Entidad
{
get{return _Entidad;}
set{_Entidad = value;}
}
}
4_ Error
+ Linea de comando donde se produce el error: _FabricaSesion =
_Configuracion.BuildSessionFactory();
+ Mensaje de Error: "Foreign key in table Email must have same
number of columns as referenced primary key in table Entidad".
Quisiera saber como puedo solucionar esta problema ya que es probado todo y
no me anda.
desde ya gracias.
--~--~---------~--~----~------------~-------~--~----~
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups-beta.google.com/group/NHibernate-Hispano
-~----------~----~----~----~------~----~------~--~---