这是我的linq
from G in Gestion select new
{
GestionInicio = G.HoraInicio,
GestionFin = G.HoraFin,
hola = (from T in Tipificacion where T.IdTipificacion == G.IDTipificacion select T).FirstOrDefault().Nombre,
LlamadaInicio = G.Llamada.HoraInicio,
LlamadaFin = G.Llamada.HoraFin,
Login = G.Llamada.Sesion.Usuario.Nombre
}
对我来说,代码看起来很好,但我看不出问题,这就是为什么我问这个,而且我知道这个问题与我的sub linq的结果有关。
好的,所以看到我无法做出足够的努力来解释这个问题
我试图用这个linq做什么它是一个IN,换句话说,在我的sub linq中我传递了参数来进行连接
答案 0 :(得分:1)
错误是什么?
FirstOrDefault
可以返回null
。尝试从Nombre
获取null
属性将引发异常。
我们只有在向您展示问题时才能提供帮助。
from g in Gestion select new
{
GestionInicio = g.HoraInicio,
GestionFin = g.HoraFin,
hola = Tipificacion.FirstOrDefault(t => t.IdTipificacion == g.IDTipificacion).Nombre,
LlamadaInicio = g.Llamada.HoraInicio,
LlamadaFin = g.Llamada.HoraFin,
Login = g.Llamada.Sesion.Usuario.Nombre
}
答案 1 :(得分:1)
在@Nick Strupat的帮助下,我意识到问题的一部分是保证值不为null所以我做了一个条件,它就像这样工作
var gestiones = (from G in db.Gestion select new GestionesDataSet()
{
GestionInicio = G.HoraInicio,
GestionFin = G.HoraFin,
@Tipificacion = ((from T in db.Tipificacion select T).Where( x => x.IdTipificacion == G.IDTipificacion).Count() > 0 ?
(from T in db.Tipificacion where T.IdTipificacion == G.IDTipificacion select T.Nombre).FirstOrDefault() : ""),
LlamadaInicio = G.Llamada.HoraInicio,
LlamadaFin = G.Llamada.HoraFin,
Login = G.Llamada.Sesion.Usuario.Nombre
}).ToList();