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

Responder a