De todas maneras debes agregar el not-null = "false" en <many-to-one
name="FacturaAplicada" class="Factura" column="FacturaId"  not-null =
"false"/>.

Umm ... siempre me confundo con el not-null = "true/false"  diria que seria
mas intuitivo si dijera nullable="true/false"... En fin prueba y me cuentas.

En caso de que no estes generando el esquema con el SchemaExport entonces
debes correr un script en la BD que cambie la llave foranea "FacturaId" como
null = "true".
Saludos,
Nestor Rodriguez
2011/6/28 Nestor Andres Rodriguez <[email protected]>

> Estas generando el script desde NH con SchemaExport ?
>
>
> 2011/6/28 Edgar Ramos <[email protected]>
>
>> Gente un Saludo
>>
>> Me he liado un poco con la relacion de estos objetos
>>
>> Factura y Retencion
>>
>> A una Factura le corresponde una retencion, siempre y cuando el cliente lo
>> exija, caso contrario no aplica, para este efecto
>>
>>
>> Mis clases
>>
>> public class Factura
>> {
>>        .......
>>         public virtual RetencionFuenteVenta Retencion { get; set; }
>>        .......
>> }
>>
>>  public class RetencionFuenteVenta
>>  {
>>          ........
>>           public virtual Factura FacturaAplicada { get; set; }
>>          ......
>>  }
>>
>> Mis mappings
>>
>> <class name="RetencionFuenteVenta">
>>     <id name="Id">
>>       <generator class="hilo"/>
>>     </id>
>>
>>    .........
>>    <many-to-one name="FacturaAplicada" class="Factura" column="FacturaId"
>> />
>>   </class>
>>
>> <class name="Factura">
>>     <id name="Id">
>>       <generator class="hilo"/>
>>     </id>
>>
>>    <many-to-one name="Retencion" class="RetencionFuenteVenta"
>> column="RetencionId" cascade="all" />
>>   </class>
>>
>> En el esquema de la bdd, la tabla Factura tiene el campo RetencionId como
>> permitir valores nulos, que para mi
>> caso es lo que requiero.
>> Por otro lado La tabla RetencionFuenteVenta, campo FacturaId, tiene
>> tambien permitir valores nulos, no me parece
>> que sea lo correcto, pero lo puesto asi para que nh persista estas
>> entidades y lo hace sin problemas
>>
>> Pero al quitar de RetencionFuenteVenta, campo FacturaID el permitir
>> valores nulos, nh me tira un error
>> -------------------------------
>> {"No se puede insertar el valor NULL en la columna 'FacturaID', tabla
>> 'RetencionFuenteVenta'. La columna no admite valores NULL. INSERT falla.\r\n
>> Se terminó la instrucción."}
>> ---------------------------------
>>
>> Cualquier comentario o sugerencia les estoy muy agradecido
>>
>> Saludos
>>
>> Edgar
>>
>>
>>
>>  --
>> 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

Responder a