2012-03-02 26 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