Foros del Web » Programación para mayores de 30 ;) » .NET »

Error NHibernate:not-null property references a null or transient value

Estas en el tema de Error NHibernate:not-null property references a null or transient value en el foro de .NET en Foros del Web. Hola estoy usando NHibernate pero ya no hago los maping en xml he encontrado una forma que considero mejor mi problema es el siguiente: Con ...
  #1 (permalink)  
Antiguo 18/05/2010, 09:52
 
Fecha de Ingreso: noviembre-2008
Mensajes: 43
Antigüedad: 15 años, 5 meses
Puntos: 0
Error NHibernate:not-null property references a null or transient value

Hola estoy usando NHibernate pero ya no hago los maping en xml he encontrado una forma que considero mejor mi problema es el siguiente:
Con las respectivas tres clases, una solicitud, otra producto, y una intermedia que es donde guardare los datos de los productos pedidos en una solicitud a la cual llamo ProductoSolicitud, guardo la solicitud bien pero posteriormente cuando intento guardar los productos me levanta la siguiente excepcion:
not-null property references a null or transient valueSolGeSoft.ProductoSolicitud.Solicitud, les pondre las clases para que puedan ver y quizas vean mi error.Muchas Gracias
  #2 (permalink)  
Antiguo 18/05/2010, 09:54
 
Fecha de Ingreso: noviembre-2008
Mensajes: 43
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error NHibernate:not-null property references a null or transient value

Clase Solicitud de Compra
[Serializable]
[HibernateMapping(Assembly = "SolGeSoft", Namespace = "SolGeSoft", DefaultAccess = "field.camelcase-underscore")]
[Class(Name = "SolGeSoft.SolicitudCompra", Table = "t_solicitud_compra", Lazy = false)]
public class SolicitudCompra : IEquatable<SolicitudCompra>
{
#region Atributos

Guid _id_solicitud;
private int _no_solicitud;
private int _nat;
private string _no_contrato_cliente;
private float _importe;
private DateTime? _fecha_comprometida;
private DateTime? _fecha_contrato;
private DateTime _fecha_elaboracion;
private DateTime? _fecha_aprobacion;
private string _breve_descripcion;
private MotivoCompra _motivo;
private Usuario _usuario;
private EstadoCompra _estado;
private Clientes _cliente;
private Sucursal _uen;
private Especialidad _especialidad;
private Especificacion _especificacion;
private Sucursal _sucursal;
private string _observaciones;
private IList<ProductoSolicitud> _prod_sol;
////private bool _aprobado;//
////private IList<SolicitudCompraEspecialidad> solicitudcompraesp;
////private IList<SolicitudCompra> solicitudcompraprod;

#endregion

#region Properties

[Generator(1, Class = "identity")]
[Id(1, Name = "No_solicitud", Type = "int", Column = "no_solicitud")]
public virtual int No_solicitud
{
get { return _no_solicitud; }
set { _no_solicitud = value; }
}
//[Id(1, Name = "Id_solicitud", Type = "Guid", Column = "id_solicitud")]
//[Generator(1,Class = "identity")]
//[Property(1, Column = "id_cliente", Type = "Guid", Name = "Idcliente", NotNull = true)]
[Property(2, Column = "id_solicitud", Type = "Guid", Name = "Id_solicitud", NotNull = true)]
public virtual Guid Id_solicitud
{
get { return _id_solicitud; }
set { _id_solicitud = value; }
}
//[Property(2, Column = "no_solicitud", Type = "int", Name = "No_solicitud", NotNull = true)]
//public virtual int No_solicitud
//{
// get { return _no_solicitud; }
// set { _no_solicitud = value; }
//}
[Property(3, Column = "nat", Type = "int", Name = "Nat", NotNull = false)]
public virtual int Nat
{
get { return _nat; }
set { _nat = value; }
}
[Property(4, Column = "no_contrato_cliente", Type = "String", Name = "No_contrato_cliente", NotNull = false)]
public virtual string No_contrato_cliente
{
get { return _no_contrato_cliente; }
set { _no_contrato_cliente = value; }
}
[Property(5, Column = "importe", Type = "float", Name = "Importe", NotNull = false)]
public virtual float Importe
{
get { return _importe; }
set { _importe = value; }
}
[Property(6, Column = "fecha_comprometida", Type = "DateTime", Name = "Fecha_comprometida", NotNull = false)]
public virtual DateTime? Fecha_comprometida
{
get { return _fecha_comprometida; }
set { _fecha_comprometida = value; }
}
[Property(7, Column = "fecha_contrato", Type = "DateTime", Name = "Fecha_contrato", NotNull = false)]
public virtual DateTime? Fecha_contrato
{
get { return _fecha_contrato; }
set { _fecha_contrato = value; }
}
[Property(8, Column = "fecha_elaboracion", Type = "DateTime", Name = "Fecha_elaboracion", NotNull = true)]
public virtual DateTime Fecha_elaboracion
{
get { return _fecha_elaboracion; }
set { _fecha_elaboracion = value; }
}
[Property(9, Column = "fecha_aprobacion", Type = "DateTime", Name = "Fecha_aprobacion", NotNull = false)]
public virtual DateTime? Fecha_aprobacion
{
get { return _fecha_aprobacion; }
set { _fecha_aprobacion = value; }
}
[Property(10, Column = "breve_descripcion", Type = "String", Name = "Breve_descripcion", NotNull = false)]
public virtual string Breve_descripcion
{
get { return _breve_descripcion; }
set { _breve_descripcion = value; }
}
[ManyToOne(11, Column = "id_motivo", Class = "MotivoCompra", Name = "Motivo", NotNull = true, ForeignKey = "FK_t_solicitud_compra_t_motivo_compra")]
public virtual MotivoCompra Motivo
{
get { return _motivo; }
set { _motivo = value; }
}
[ManyToOne(12, Column = "id_usuario", Class = "Usuario", Name = "Usuario", NotNull = true, ForeignKey = "FK_t_solicitud_compra_t_usuario")]
public virtual Usuario Usuario
{
get { return _usuario; }
set { _usuario = value; }
}
[ManyToOne(13, Column = "id_estado", Class = "EstadoCompra", Name = "Estado", NotNull = true, ForeignKey = "FK_t_solicitud_compra_t_estado")]
public virtual EstadoCompra Estado
{
get { return _estado; }
set { _estado = value; }
}
[ManyToOne(14, Column = "id_cliente", Class = "Clientes", Name = "Cliente", NotNull = false, ForeignKey = "FK_t_solicitud_compra_t_cliente")]
public virtual Clientes Cliente
{
get { return _cliente; }
set { _cliente = value; }
}
[ManyToOne(15, Column = "id_sucursal", Class = "Sucursal", Name = "Sucursal", NotNull = true, ForeignKey = "FK_t_solicitud_compra_t_sucursal")]
public virtual Sucursal Sucursal
{
get { return _sucursal; }
set { _sucursal = value; }
}
[ManyToOne(16, Column = "id_especialidad", Class = "Especialidad", Name = "Especialidad", NotNull = false, ForeignKey = "FK_t_solicitud_compra_t_especialidad")]
public virtual Especialidad Especialidad
{
get { return _especialidad; }
set { _especialidad = value; }
}
[ManyToOne(17, Column = "id_especificacion", Class = "Especificacion", Name = "Especificacion", NotNull = false, ForeignKey = "FK_t_solicitud_compra_t_especificacion")]
public virtual Especificacion Especificacion
{
get { return _especificacion; }
set { _especificacion = value; }
}
[Property(18, Column = "observaciones", Type = "String", Name = "Observaciones", NotNull = false)]
public virtual string Observaciones
{
get { return _observaciones; }
set { _observaciones = value; }
}
[ManyToOne(19, Column = "id_uen", Class = "Sucursal", Name = "Uen", NotNull = false, ForeignKey = "FK_t_solicitud_compra_t_sucursal1")]
public virtual Sucursal Uen
{
get { return _uen; }
set { _uen = value; }
}
[OneToMany(20, Class = "SolGeSoft.ProductoSolicitud,SolGeSoft", NotFound = NotFoundMode.Ignore)]
public virtual IList<ProductoSolicitud> Prod_sol
{
get { return _prod_sol; }
set { _prod_sol = value; }
}


#endregion

Última edición por yanuarys; 18/05/2010 a las 09:59
  #3 (permalink)  
Antiguo 18/05/2010, 09:55
 
Fecha de Ingreso: noviembre-2008
Mensajes: 43
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error NHibernate:not-null property references a null or transient value

Clase Productos

namespace SolGeSoft
{
[Serializable]
[HibernateMapping(Assembly = "SolGeSoft", Namespace = "SolGeSoft", DefaultAccess = "field.camelcase-underscore", DefaultLazy = true)]
[Class(Name = "SolGeSoft.Productos", Table = "t_producto")]
public class Productos //: IEquatable<SubFamilias>
{
private Guid _id_producto;
private string _cod_producto;
private Familias _familia;
private SubFamilias _subfamilia;
//private int _especialidad;
private string _descripcion;
private UnidadMedida _unidad;
private IList<ProductoSolicitud> _prod_sol;
// private IList<SolicitudCompra> solicitudcompraprod; poner
//private IList<SolicitudCompra> tallasproductos;
[Id(1, Name = "Id_producto", Type = "Guid", Column = "id_producto")]
//[Property(1, Column = "id_producto", Type = "Guid", Name = "Id_producto", NotNull = true)]
public virtual Guid Id_producto
{
get { return _id_producto; }
set { _id_producto = value; }
}
[Property(2, Column = "cod_prod", Type = "String", Name = "Cod_producto", NotNull = false)]
public virtual string Cod_producto
{
get { return _cod_producto; }
set { _cod_producto = value; }
}
[ManyToOne(3, Name = "Familia", Column = "cod_familia", Class = "SolGeSoft.Familias,SolGeSoft", NotNull = false)]
public virtual Familias Familia
{
get { return _familia; }
set { _familia = value; }
}
[ManyToOne(4, Name = "Subfamilia", Column = "id_subfamilia", Class = "SolGeSoft.SubFamilias,SolGeSoft", NotNull = false)]
public virtual SubFamilias Subfamilia
{
get { return _subfamilia; }
set { _subfamilia = value; }
}
//[Property(5, Name = "Especialidad", Column = "id_especialidad", Type = "int", NotNull = false)]
//public virtual int Especialidad
//{
// get { return _especialidad; }
// set { _especialidad = value; }
//}
[Property(5, Column = "Descripcion", Type = "String", Name = "Descripcion", NotNull = false)]
public virtual string Descripcion
{
get { return _descripcion; }
set { _descripcion = value; }


}
[ManyToOne(6, Name = "Unidad", Column = "id_unidad", Class = "SolGeSoft.UnidadMedida,SolGeSoft", NotNull = true, ForeignKey = "FK_t_producto_t_unidad_medida")]
public virtual UnidadMedida Unidad
{
get { return _unidad; }
set { _unidad = value; }
}
[OneToMany(7, Class = "SolGeSoft.ProductoSolicitud,SolGeSoft", NotFound = NotFoundMode.Ignore)]
public virtual IList<ProductoSolicitud> Prod_sol
{
get { return _prod_sol; }
set { _prod_sol = value; }
}

public virtual string CodigoFull
{
get { return _familia.Cod_familia + _subfamilia.Cod_subfamilia + _cod_producto; }
  #4 (permalink)  
Antiguo 18/05/2010, 09:57
 
Fecha de Ingreso: noviembre-2008
Mensajes: 43
Antigüedad: 15 años, 5 meses
Puntos: 0
Respuesta: Error NHibernate:not-null property references a null or transient value

Clase ProductoSolicitud

namespace SolGeSoft
{
[Serializable]
[HibernateMapping(Assembly = "SolGeSoft", Namespace = "SolGeSoft", DefaultAccess = "field.camelcase-underscore")]
[Class(Name = "SolGeSoft.ProductoSolicitud", Table = "t_solicitud_compra_producto", Lazy = false)]
public class ProductoSolicitud : IEquatable<ProductoSolicitud>
{
#region Atributos

private Guid _id_sol_prod;
private Productos _producto;
private SolicitudCompra _solicitud;

private Talla _talla;
private EstadoProducto _estado;
private int _cantidad;

#endregion

#region Properties
[Id(1, Name = "Id_sol_prod", Type = "Guid", Column = "id_sol_prod")]
public virtual Guid Id_sol_prod
{
get { return _id_sol_prod; }
set { _id_sol_prod = value; }
}
[Property(2, Column = "cantidad", Type = "int", Name = "Cantidad", NotNull = true)]
public virtual int Cantidad
{
get { return _cantidad; }
set { _cantidad = value; }
}
[ManyToOne(3, Name = "Producto", Column = "id_producto", Class = "SolGeSoft.Productos,SolGeSoft", NotNull = true, ForeignKey = "FK_t_solicitud_compra_producto_t_producto1")]
public virtual Productos Producto
{
get { return _producto; }
set { _producto = value; }
}

[ManyToOne(4, Name = "Solicitud", Column = "id_solicitud", Class = "SolGeSoft.SolicitudCompra,SolGeSoft", NotNull = true,ForeignKey = "FK_t_solicitud_compra_producto_t_solicitud_compra 1")]
public virtual SolicitudCompra Solicitud
{
get { return _solicitud; }
set { _solicitud = value; }
}

[ManyToOne(5, Name = "Talla", Column = "id_talla", Class = "SolGeSoft.Talla,SolGeSoft", NotNull = true, ForeignKey = "FK_t_solicitud_compra_producto_t_talla1")]
public virtual Talla Talla
{
get { return _talla; }
set { _talla = value; }
}
[ManyToOne(6, Name = "Estado", Column = "id_estado", Class = "SolGeSoft.EstadoProducto,SolGeSoft", NotNull = true, ForeignKey = "FK_t_solicitud_compra_producto_t_estado_producto1 ")]
public virtual EstadoProducto Estado
{
get { return _estado; }
set { _estado = value; }
}


#endregion
  #5 (permalink)  
Antiguo 18/05/2010, 17:00
 
Fecha de Ingreso: febrero-2010
Ubicación: Guayaquil - Ecuador
Mensajes: 350
Antigüedad: 14 años, 2 meses
Puntos: 13
Respuesta: Error NHibernate:not-null property references a null or transient value

Hola yanuarys, podrias postear la forma en que realizas el proceso de grabar con tus objetos?
Me di cuenta de algo, tu en el objeto ProductoSolicitud estas armando tus claves foraneas con respecto a listas, lo cual no deberias realizar. Una lista simplemente es como un objeto al objeto, una consulta rapida que te ayude a dinamizar tu proceso y no hacer tantas consultas al objeto; es decir, una lista nunca se tomara para hacer persistencia. Puedes intentar hacer la lista aparte y tener la propiedad relacionada.
Otra recomendacion que te doy es tener separados los objetos de dominio y mapeos, ya que ahi estas tomando en el dominio todo el objeto como tal. Revisa la documentacion del nhibernate para mas informacion.

Salu2

Etiquetas: null, references
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 20:44.