【问题标题】:double condition checking in where using linq to populate datagrid在使用 linq 填充数据网格的地方进行双重条件检查
【发布时间】:2013-07-06 08:36:04
【问题描述】:

我在通过 LINQ 上的选择列表填充数据网格时遇到了一点问题。 问题是,我需要这两个过滤器来获得正确的列表,这些过滤器是:
“ventilador”(PK = cod_ventilador) 和“procesador”(PK = cod_procesador) 不能存在于“Overclock”(PK = id) 数据库非常简单:ventiladorprocesador 都是产品 (Productos),当您使用其中一个 (*?) 进行超频时,您将添加一个新的超频,其中包含这两个项目的 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) 进行比较。有任何想法吗?

【问题讨论】:

    标签: c# wpf linq datagrid where


    【解决方案1】:

    你需要使用Contains方法:

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

    (也就是说,如果我正确理解了您的问题)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      • 1970-01-01
      • 2020-12-22
      • 2023-03-25
      • 2020-05-08
      • 2012-10-05
      相关资源
      最近更新 更多