Hola todos , Luego de batalla , Logre lo que quiero.
Factura:
<class name="Factura" table="Facturas">
<id name="Id" column="Id">
<generator class="identity" />
</id>
<any name="Entidad" id-type="System.Int64" meta-
type="System.String" cascade="all">
<meta-value value="A" class="Agente"/>
<meta-value value="C" class="Cliente"/>
<column name="EntidadType" not-null="true" />
<column name="IdEntid" not-null="true"/>
</any>
</class>
Cliente:
<class name="Cliente" table="Clientes">
<id name="Id" type="Int64" column="Id">
<generator class="identity" />
</id>
<property name="Nombre" type="String" column="Nombre" />
</class>
Agente:
<class name="Agente" table="Agentes">
<id name="Id" type="Int64" column="Id">
<generator class="identity" />
</id>
<property name="Nombre" type="String" column="Nombre" />
</class>
EN C#
Clases.cs
public abstract class Entidad
{
public virtual Int64 Id
{
get;
set;
}
}
public class Factura : BaseAbstracta
{
private Entidad _entidad;
public virtual Entidad Entidad
{
get { return _entidad; }
set { _entidad = value; }
}
}
public class Agente : Entidad
{
private string _nombre;
public virtual string Nombre
{
get { return _nombre; }
set { _nombre = value; }
}
private string _codigo;
public virtual string Codigo
{
get { return _codigo; }
set { _codigo = value; }
}
}
public class Cliente : Entidad
{
private string _nombre;
public virtual string Nombre
{
get { return _nombre; }
set { _nombre = value; }
}
private string _codigo;
public virtual string Codigo
{
get { return _codigo; }
set { _codigo = value; }
}
}
Gracias por aporte de Carlos.
Saludos a todos
Que pases un buen fin de semana!
On 28 sep, 16:25, Flapido <[email protected]> wrote:
> Muchas gracias , Carlos , voy a tratar.
>
> On 28 sep, 07:05, Carlos Peix <[email protected]> wrote:
>
>
>
>
>
>
>
> > Hola Federico,
>
> > Como muchos ya han dicho en esta lista, es muy dificil llegar a un buen
> > diseño usando un ORM si no te acostumbras a pensar en objetos en lugar de en
> > tablas.
>
> > Fijate en un thread reciente de esta misma lista en la que planteo un tema
> > similar, la triada evento-rol-actor.
>
> >http://groups.google.com/group/nhibernate-hispano/browse_thread/threa...
>
> > En tu caso, el evento seria la Factura, la cual debe ser emitida a un
> > Cliente (Rol), mas alla de que sea una Empresa (Actor) o un Agente (Aqui
> > creo que tenemos un rol tambien)
>
> > De esta manera, definiendo tu rol Cliente, podes hacer que cualquiera lo
> > desempeñe (Empresa, persona, etc).
>
> > En ese thread planteo varias alternativas para el mapeo y algunas dudas.
> > Finalmente esa cuestion quedo abierta pero, charlando con Fabio en un evento
> > hace unas semanas, "me conto" una solucion que entendi parcialmente pero que
> > aun debo implementar.
>
> > Un saludo
>
> > ----------------------------------
> > Carlos Peix
>
> > 2011/9/27 Flapido <[email protected]>
>
> > > Quiero hacer un mapeo para las Entidades
>
> > > Tabla
> > > Factura
> > > -id
> > > -TypeEntidad ( si typeEntidad es A --> Agente sino cliente)
>
> > > Agente
> > > -id
>
> > > Cliente
> > > -id
>
> > > como armo los mapeos? o tengo que crear otra tabla de relacion entre
> > > Factura y Entidades
> > > Ejemplo:
> > > Factura_entidades
> > > -Id
> > > -IdAgente
> > > -Idcliente
>
> > > Gracias!!!
>
> > > --
> > > Para escribir al Grupo, hágalo a esta dirección:
> > > [email protected]
> > > Para más, visite:http://groups.google.com/group/NHibernate-Hispano
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano