2013-07-06 40 views
0

我有一個小問題,通過LINQ上的選擇列表填充數據網格。 的事情是,我需要這兩個過濾器,以獲得正確的列表,這些過濾器:
「ventilador」 (PK = cod_ventilador)和「procesador」 (PK = cod_procesador)不應該在存在「超頻」 (PK = id) 數據庫是非常簡單的:既ventiladorprocesador是產品(Productos),當你使用其中一個(*?)進行超頻時,你會添加一個新的超頻,其中有兩個項目的PK ... 所以這裏是我試過的代碼雙重條件檢查在哪裏使用LINQ來填充數據網格

{ 

    var pregunta1 = db.OverClock.Select(x => x.cod_procesador).Distinct().ToList(); 
    var pregunta2 = db.OverClock.Select(x => x.cod_ventilador).Distinct().ToList(); 

    dgSinOver.ItemsSource = 
     db.Producto 
      .Where(x=>x.Procesador!=pregunta1 && x.Ventilador!=pregunta2) 
      .Select(x => x.marcar) 
      .Distinct() 
      .ToList() 
     ; 

} 

顯然不可能將一個cod_procesador(PK on Productos)與一個codigos列表(PK on overclock)進行比較。有任何想法嗎?

回答

0

您需要使用Contains方法:

dgSinOver.ItemsSource = db.Producto.Where(x=>!pregunta1.Contains(x.Procesador) && !pregunta2.Contains(x.Ventilador)).Select(x => x.marcar).Distinct().ToList(); 

(也就是說,如果我理解正確你的問題)。