2012-03-02 85 views
-2

这里是我的LINQ这个linq有什么问题?努力使IN子句

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 
} 

对我的代码看的不错,但我看不到的问题,这就是为什么我问这个,我知道,这个问题与结果相关的我子linq。

好了,看到之后,我无法做出足够的努力来说明这个问题

我试图用这个LINQ这是一个IN,换句话说,在我的子LINQ我经过参数做做一个加入

+2

呼吸...你的问题是什么?你看到的是什么问题/错误? – BrokenGlass 2012-03-02 02:17:20

+2

请在你的问题上付出一些努力。 – sarnold 2012-03-02 02:17:45

+0

检查我的问题的更新 – Jorge 2012-03-02 02:38:23

回答

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(); 
1

什么是错误?

FirstOrDefault可以返回null。试图从null中获取Nombre属性将引发异常。

如果您向我们展示问题,我们只能提供帮助。

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 
} 
+0

我需要比较'Tipificacion'这是一个集合与'Gestion'的值,如果我做'firstOrDefault'之前我只是与第一个记录比较 – Jorge 2012-03-02 02:59:08

+0

我也试过你的解决方案,它会抛出同样的异常 – Jorge 2012-03-02 03:01:41

+0

检查我的答案,是基于你的答案 – Jorge 2012-03-02 03:39:02