Buenas tardes a todos,

Necesito saber si un comportamiento normal lo siguiente:

Cuento con una clase Factura al cual yo le puedo asignar Detalles los cuales
estan representados por medio de un IList<DetalleFactura> en mi clase
Factura... cuando yo guardo una Factura nueva, desde cero, al hacer
ISession.Save(factura) y antes del Commit() de la transacción, en ese
momento mis Detalles de Productos ya cuentan con un id; caso contrario
sucede cuando actualizo dicha Factura en otro request diferente.

¿Es normal al momento de consultar (uso el método Get de la ISession) y
actualizar mi factura agregandole un nuevo detalle de la siguiente manera:
factura.Detalles.Add(new DetalleFactura()) y hacerpor
ISession.Update(factura) el "nuevo" DetalleFactura no cuente con id?

Mi método de manejo de sesión es session-per-request y mi mappings son:

*Factura.hbm.xml*
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Core"
namespace="Core">
  <class name="Factura" table="tblFacturas" lazy="false">
    <id name="Id" column="id" type="System.Int64" unsaved-value="0">
      <generator class="identity" />
    </id>
    <bag name="DetalleFactura" inverse="true" cascade="all-delete-orphan"
lazy="false" order-by="orden">
      <key column="idFactura" on-delete="cascade"></key>
      <one-to-many class="DetalleFactura"></one-to-many>
    </bag>
  </class>
</hibernate-mapping>

*DetalleFactura.hbm.xml*
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2" assembly="Core"
namespace="Core">
  <class name="DetalleFactura" table="tblDetallesFacturas" lazy="false">
    <id name="Id" column="id" type="System.Int64" unsaved-value="0">
      <generator class="identity" />
    </id>
    <many-to-one name="Factura" class="Factura" column="idFactura"
not-null="false" cascade="none"></many-to-one>
  </class>
</hibernate-mapping>

Muchas gracias por la ayuda brindada.

J. Roberto Ramírez
www.robertoramirez.com.mx
Social Media [image: Linkedin]
<http://www.linkedin.com/in/jramirezleyva>[image:
Twitter] <http://twitter.com/bobbher>

-- 
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