hola,
tengo el siguiente dominio
public class EntityBase
{
public virtual int Id { get; set; }
}
public class Imagen : EntityBase
{
public virtual string Path { get; private set; }
public virtual string Description { get; private set; }
internal Imagen()
{
}
public Imagen(string description, string path)
{
this.Description = description;
this.Path = path;
}
}
public class Galeria : EntityBase
{
public virtual IList<Imagen> Imagenes { get; private set; }
public Galeria()
{
Imagenes = new List<Imagen>();
}
public void AddImagen(Imagen img)
{
Imagenes.Add(img);
}
}
estoy usando ConfOrm para hacer el mapping de esta forma:
var orm = new ObjectRelationalMapper();
orm.TablePerClass<Galeria>();
orm.TablePerClass<Imagen>();
orm.Patterns.PoidStrategies.Add(new HighLowPoidPattern());
mapper.AddPoidPattern(mi => mi.Name == "Id", (mi, idm) =>
idm.Column(mi.ReflectedType.Name + "Id"));
me genera el siguiente XML
<?xml version="1.0" encoding="utf-8"?>
<hibernate-mapping xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" namespace="MDL.BahiaBsAs.Domain" assembly="MDL.BahiaBsAs.Domain" xmlns="urn:nhibernate-mapping-2.2">
<class name="Galeria">
<id name="Id" column="GaleriaId" type="Int32">
<generator class="hilo" />
</id>
<list name="Imagenes">
<key column="galeria_key" />
<list-index />
<one-to-many class="Imagen" />
</list>
</class>
<class name="Imagen">
<id name="Id" column="ImagenId" type="Int32">
<generator class="hilo" />
</id>
<property name="Path" />
<property name="Description" />
</class>
</hibernate-mapping>
al quierer insertar registros con este codigo me da una excepcion
using (ISession s = factory.OpenSession())
{
using (ITransaction tx = s.BeginTransaction())
{
var galeria = new Galeria();
var imagen = new Imagen("Bota1","image01.jpg");
galeria.AddImagen(imagen);
s.Save(galeria);
tx.Commit();
}
}
me da una TransientObjectException
con el siguiente mensaje : object references an unsaved transient instance -
save the transient instance before flushing. Type: Domain.Imagen, Entity:
Domain.Imagen
hacer un s.Save(imagen), no soluciona el problema.
es la primera vez que mapeo un List y no se si lo estoy unsando en forma
correcta.
gracias
Mario Dal Lago
Yahoo! Cocina
Encontra las mejores recetas con Yahoo! Cocina.
http://ar.mujer.yahoo.com/cocina/
--
Para escribir al Grupo, hágalo a esta dirección:
[email protected]
Para más, visite: http://groups.google.com/group/NHibernate-Hispano