双重条件检查使用linq填充datagrid的位置

时间:2013-07-06 08:36:05

标签: c# wpf linq datagrid where

我在LINQ上通过选择列表填充数据网格时遇到了一些问题。 问题是,我需要这两个过滤器来获得正确的列表,这些过滤器是:
在“超频”(PK = cod_ventilador)上不得存在“ventilador”(PK = cod_procesador)和“procesador”(PK = id) 数据库非常简单:ventiladorprocesador都是产品(Productos),当你使用其中一个(*?)进行超频时,你会添加一个新的Overclock,它具有PK这两个项目...... 所以这是我试过的代码

{

    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)列表进行比较。有任何想法吗?

1 个答案:

答案 0 :(得分:0)

您需要使用Contains方法:

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

(也就是说,如果我理解你的问题)。