This question is locked. New answers and comments are not allowed.
Hi, I have the following problem in a Linq query with subquery and returns me a list group but materialize against a user-defined class, the resulting error message is as follows. Cual puede ser la mejor soluciĆ³n a este problema, si el objeto de materializacion permite datos null, que tipo de dato debo evaluar para que lo reciba, gracias por sus comentarios.
{System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.
en lambda_method(Closure , <>f__AnonymousType16`2 , <>f__AnonymousType15`7 )
en System.Linq.Enumerable.<SelectManyIterator>d__31`3.MoveNext()
en System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
en System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
en RFASTCUR.C39.LogicaAplicacion.M39SolicitudBLL.ObtenerList()
////// The Class Business /////////
namespace RFASTCUR.C39.LogicaAplicacion
{
public partial class M39SolicitudBLL
{
public List<M39SolicitudRtoDTO> ObtenerList()
{
List<M39SolicitudRtoDTO> listaM39SolicitudRtoDTO = null;
try
{
listaM39SolicitudRtoDTO = (
from tablaSolicitud in this.bdContext.M39Solicituds
join tablaSolicitudEstadoRcion in
(
(from solEstadoRecepLlam in this.bdContext.M39SolicitudEstados
join eSolicitudRecepLlam in this.bdContext.P39EstadoSolicituds
on new { solEstadoRecepLlam.IdEstadoSolicitud, EstadoSolicitud = (11).ToString() }
equals new { eSolicitudRecepLlam.IdEstadoSolicitud, eSolicitudRecepLlam.EstadoSolicitud }
group solEstadoRecepLlam by new
{
solEstadoRecepLlam.IdSolicitud
} into g
select new
{
f2_IdSolicitud = g.Key.IdSolicitud,
f2_FechaEstado = g.Min(p => p.FechaEstado)
})) on new { IdSolicitud = tablaSolicitud.IdSolicitud }
equals new { IdSolicitud = tablaSolicitudEstadoRcion.f2_IdSolicitud }
into tablaSolicitudEstadoRcion_join
from tablaSolicitudEstadoRcion in tablaSolicitudEstadoRcion_join.DefaultIfEmpty()
join tablaSolicitudEstadoUbic in
(
(from solEstadoUbicacion in this.bdContext.M39SolicitudEstados
join eSolicitudUbicacion in this.bdContext.P39EstadoSolicituds
on new { solEstadoUbicacion.IdEstadoSolicitud, EstadoSolicitud = (51).ToString() }
equals new { eSolicitudUbicacion.IdEstadoSolicitud, eSolicitudUbicacion.EstadoSolicitud }
group solEstadoUbicacion by new
{
solEstadoUbicacion.IdSolicitud,
solEstadoUbicacion.FechaEstado
} into f
select new
{
f3_IdSolicitud = f.Key.IdSolicitud,
f3_FechaEstado = (DateTime?)f.Key.FechaEstado
})) on new { IdSolicitud = tablaSolicitud.IdSolicitud } equals new { IdSolicitud = tablaSolicitudEstadoUbic.f3_IdSolicitud } into tablaSolicitudEstadoUbic_join
from tablaSolicitudEstadoUbic in tablaSolicitudEstadoUbic_join.DefaultIfEmpty()
join tablaSolicitudConfirm in
(
(from solEstadoConfirm in this.bdContext.M39SolicitudEstados
join eSolicitudConfirm in this.bdContext.P39EstadoSolicituds
on new { solEstadoConfirm.IdEstadoSolicitud, EstadoSolicitud = (61).ToString() }
equals new { eSolicitudConfirm.IdEstadoSolicitud, eSolicitudConfirm.EstadoSolicitud }
group solEstadoConfirm by new
{
solEstadoConfirm.Idm39SolicitudEstado,
solEstadoConfirm.IdSolicitud,
solEstadoConfirm.CodigoUsuario,
solEstadoConfirm.IdEstadoSolicitud,
solEstadoConfirm.IdCausaEstadoSolicitud,
solEstadoConfirm.Observaciones
} into h
select new
{
f4_Idm39SolicitudEstado = (int?)h.Key.Idm39SolicitudEstado,
f4_IdSolicitud = h.Key.IdSolicitud,
f4_CodigoUsuario = h.Key.CodigoUsuario,
f4_FechaEstado = (DateTime?)h.Max(p => p.FechaEstado),
f4_IdEstadoSolicitud = (int?)h.Key.IdEstadoSolicitud,
f4_IdCausaEstadoSolicitud = h.Key.IdCausaEstadoSolicitud,
f4_Observaciones = h.Key.Observaciones
})) on new { IdSolicitud = tablaSolicitud.IdSolicitud } equals new { IdSolicitud = tablaSolicitudConfirm.f4_IdSolicitud } into tablaSolicitudConfirm_join
from tablaSolicitudConfirm in tablaSolicitudConfirm_join.DefaultIfEmpty()
select new M39SolicitudRtoDTO
{
IdSolicitud = tablaSolicitud.IdSolicitud,
IdTipoSolicitante = tablaSolicitud.IdTipoSolicitante,
//FechaRecepcion = tablaSolicitudEstadoRcion.f2_FechaEstado,
CodigoSolicitante = tablaSolicitud.CodigoSolicitante,
Historia = tablaSolicitud.Historia,
DireccionOrigen = tablaSolicitud.DireccionOrigen,
PrestadorOrigen = tablaSolicitud.PrestadorOrigen,
IdPersonaSolicitante = tablaSolicitud.IdPersonaSolicitante,
AutorizacionSolicitante = tablaSolicitud.AutorizacionSolicitante,
IdClasificacionTriage = tablaSolicitud.IdClasificacionTriage,
DepartamentoOrigen = tablaSolicitud.DepartamentoOrigen,
IdApertura = tablaSolicitud.IdApertura,
DireccionDestino = tablaSolicitud.DireccionDestino,
PrestadorDestino = tablaSolicitud.PrestadorDestino,
ComentariosUbicacion = tablaSolicitud.ComentariosUbicacion,
DepartamentoDestino = tablaSolicitud.DepartamentoDestino,
MunicipioDestino = tablaSolicitud.MunicipioDestino,
IdMovil = tablaSolicitud.IdMovil,
//FechaDespacho = tablaSolicitudEstadoUbic.f3_FechaEstado,
OrdenInternacion = tablaSolicitud.OrdenInternacion,
IpsInternacion = tablaSolicitud.IpsInternacion,
DocumentoInternacion = tablaSolicitud.DocumentoInternacion,
/*f4Idm39SolicitudEstado = tablaSolicitudConfirm.f4_Idm39SolicitudEstado, /// ERROR GENERATED
f4IdSolicitud = (int?)tablaSolicitudConfirm.f4_IdSolicitud, /// ERROR GENERATED
f4CodigoUsuario = tablaSolicitudConfirm.f4_CodigoUsuario, /// ERROR GENERATED
f4FechaConfirm = tablaSolicitudConfirm.f4_FechaEstado,
f4IdEstadoSolicitud = tablaSolicitudConfirm.f4_IdEstadoSolicitud,
f4IdCausaEstadoSolicitud = tablaSolicitudConfirm.f4_IdCausaEstadoSolicitud,*/
f4Observaciones = tablaSolicitudConfirm.f4_Observaciones /// ERROR GENERATED
}).ToList();
}
catch (NullReferenceException ex) {
}
return listaM39SolicitudRtoDTO;
}
}
////// defined class USER ////
namespace RFASTCUR.Datos.OpenAccess.RTO
{
public class M39SolicitudRtoDTO : M39Solicitud
{
public DateTime? FechaRecepcion { get; set; }
public DateTime? FechaDespacho { get; set; }
public int f4Idm39SolicitudEstado? { get; set; }
public int f4IdSolicitud? { get; set; }
public string f4CodigoUsuario { get; set; }
public DateTime f4FechaConfirm? { get; set; }
public byte f4IdEstadoSolicitud { get; set; }
public short? f4IdCausaEstadoSolicitud { get; set; }
public String f4Observaciones { get; set; }
}
}
M39Solicitud Class Open Access Model
{System.NullReferenceException: Referencia a objeto no establecida como instancia de un objeto.
en lambda_method(Closure , <>f__AnonymousType16`2 , <>f__AnonymousType15`7 )
en System.Linq.Enumerable.<SelectManyIterator>d__31`3.MoveNext()
en System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
en System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
en RFASTCUR.C39.LogicaAplicacion.M39SolicitudBLL.ObtenerList()
////// The Class Business /////////
namespace RFASTCUR.C39.LogicaAplicacion
{
public partial class M39SolicitudBLL
{
public List<M39SolicitudRtoDTO> ObtenerList()
{
List<M39SolicitudRtoDTO> listaM39SolicitudRtoDTO = null;
try
{
listaM39SolicitudRtoDTO = (
from tablaSolicitud in this.bdContext.M39Solicituds
join tablaSolicitudEstadoRcion in
(
(from solEstadoRecepLlam in this.bdContext.M39SolicitudEstados
join eSolicitudRecepLlam in this.bdContext.P39EstadoSolicituds
on new { solEstadoRecepLlam.IdEstadoSolicitud, EstadoSolicitud = (11).ToString() }
equals new { eSolicitudRecepLlam.IdEstadoSolicitud, eSolicitudRecepLlam.EstadoSolicitud }
group solEstadoRecepLlam by new
{
solEstadoRecepLlam.IdSolicitud
} into g
select new
{
f2_IdSolicitud = g.Key.IdSolicitud,
f2_FechaEstado = g.Min(p => p.FechaEstado)
})) on new { IdSolicitud = tablaSolicitud.IdSolicitud }
equals new { IdSolicitud = tablaSolicitudEstadoRcion.f2_IdSolicitud }
into tablaSolicitudEstadoRcion_join
from tablaSolicitudEstadoRcion in tablaSolicitudEstadoRcion_join.DefaultIfEmpty()
join tablaSolicitudEstadoUbic in
(
(from solEstadoUbicacion in this.bdContext.M39SolicitudEstados
join eSolicitudUbicacion in this.bdContext.P39EstadoSolicituds
on new { solEstadoUbicacion.IdEstadoSolicitud, EstadoSolicitud = (51).ToString() }
equals new { eSolicitudUbicacion.IdEstadoSolicitud, eSolicitudUbicacion.EstadoSolicitud }
group solEstadoUbicacion by new
{
solEstadoUbicacion.IdSolicitud,
solEstadoUbicacion.FechaEstado
} into f
select new
{
f3_IdSolicitud = f.Key.IdSolicitud,
f3_FechaEstado = (DateTime?)f.Key.FechaEstado
})) on new { IdSolicitud = tablaSolicitud.IdSolicitud } equals new { IdSolicitud = tablaSolicitudEstadoUbic.f3_IdSolicitud } into tablaSolicitudEstadoUbic_join
from tablaSolicitudEstadoUbic in tablaSolicitudEstadoUbic_join.DefaultIfEmpty()
join tablaSolicitudConfirm in
(
(from solEstadoConfirm in this.bdContext.M39SolicitudEstados
join eSolicitudConfirm in this.bdContext.P39EstadoSolicituds
on new { solEstadoConfirm.IdEstadoSolicitud, EstadoSolicitud = (61).ToString() }
equals new { eSolicitudConfirm.IdEstadoSolicitud, eSolicitudConfirm.EstadoSolicitud }
group solEstadoConfirm by new
{
solEstadoConfirm.Idm39SolicitudEstado,
solEstadoConfirm.IdSolicitud,
solEstadoConfirm.CodigoUsuario,
solEstadoConfirm.IdEstadoSolicitud,
solEstadoConfirm.IdCausaEstadoSolicitud,
solEstadoConfirm.Observaciones
} into h
select new
{
f4_Idm39SolicitudEstado = (int?)h.Key.Idm39SolicitudEstado,
f4_IdSolicitud = h.Key.IdSolicitud,
f4_CodigoUsuario = h.Key.CodigoUsuario,
f4_FechaEstado = (DateTime?)h.Max(p => p.FechaEstado),
f4_IdEstadoSolicitud = (int?)h.Key.IdEstadoSolicitud,
f4_IdCausaEstadoSolicitud = h.Key.IdCausaEstadoSolicitud,
f4_Observaciones = h.Key.Observaciones
})) on new { IdSolicitud = tablaSolicitud.IdSolicitud } equals new { IdSolicitud = tablaSolicitudConfirm.f4_IdSolicitud } into tablaSolicitudConfirm_join
from tablaSolicitudConfirm in tablaSolicitudConfirm_join.DefaultIfEmpty()
select new M39SolicitudRtoDTO
{
IdSolicitud = tablaSolicitud.IdSolicitud,
IdTipoSolicitante = tablaSolicitud.IdTipoSolicitante,
//FechaRecepcion = tablaSolicitudEstadoRcion.f2_FechaEstado,
CodigoSolicitante = tablaSolicitud.CodigoSolicitante,
Historia = tablaSolicitud.Historia,
DireccionOrigen = tablaSolicitud.DireccionOrigen,
PrestadorOrigen = tablaSolicitud.PrestadorOrigen,
IdPersonaSolicitante = tablaSolicitud.IdPersonaSolicitante,
AutorizacionSolicitante = tablaSolicitud.AutorizacionSolicitante,
IdClasificacionTriage = tablaSolicitud.IdClasificacionTriage,
DepartamentoOrigen = tablaSolicitud.DepartamentoOrigen,
IdApertura = tablaSolicitud.IdApertura,
DireccionDestino = tablaSolicitud.DireccionDestino,
PrestadorDestino = tablaSolicitud.PrestadorDestino,
ComentariosUbicacion = tablaSolicitud.ComentariosUbicacion,
DepartamentoDestino = tablaSolicitud.DepartamentoDestino,
MunicipioDestino = tablaSolicitud.MunicipioDestino,
IdMovil = tablaSolicitud.IdMovil,
//FechaDespacho = tablaSolicitudEstadoUbic.f3_FechaEstado,
OrdenInternacion = tablaSolicitud.OrdenInternacion,
IpsInternacion = tablaSolicitud.IpsInternacion,
DocumentoInternacion = tablaSolicitud.DocumentoInternacion,
/*f4Idm39SolicitudEstado = tablaSolicitudConfirm.f4_Idm39SolicitudEstado, /// ERROR GENERATED
f4IdSolicitud = (int?)tablaSolicitudConfirm.f4_IdSolicitud, /// ERROR GENERATED
f4CodigoUsuario = tablaSolicitudConfirm.f4_CodigoUsuario, /// ERROR GENERATED
f4FechaConfirm = tablaSolicitudConfirm.f4_FechaEstado,
f4IdEstadoSolicitud = tablaSolicitudConfirm.f4_IdEstadoSolicitud,
f4IdCausaEstadoSolicitud = tablaSolicitudConfirm.f4_IdCausaEstadoSolicitud,*/
f4Observaciones = tablaSolicitudConfirm.f4_Observaciones /// ERROR GENERATED
}).ToList();
}
catch (NullReferenceException ex) {
}
return listaM39SolicitudRtoDTO;
}
}
////// defined class USER ////
namespace RFASTCUR.Datos.OpenAccess.RTO
{
public class M39SolicitudRtoDTO : M39Solicitud
{
public DateTime? FechaRecepcion { get; set; }
public DateTime? FechaDespacho { get; set; }
public int f4Idm39SolicitudEstado? { get; set; }
public int f4IdSolicitud? { get; set; }
public string f4CodigoUsuario { get; set; }
public DateTime f4FechaConfirm? { get; set; }
public byte f4IdEstadoSolicitud { get; set; }
public short? f4IdCausaEstadoSolicitud { get; set; }
public String f4Observaciones { get; set; }
}
}
M39Solicitud Class Open Access Model