我在LINQ上通过选择列表填充数据网格时遇到了一些问题。
问题是,我需要这两个过滤器来获得正确的列表,这些过滤器是:
在“超频”(PK = cod_ventilador)
上不得存在“ventilador”(PK = cod_procesador)
和“procesador”(PK = id)
数据库非常简单:ventilador
和procesador
都是产品(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)
列表进行比较。有任何想法吗?
答案 0 :(得分:0)
您需要使用Contains
方法:
dgSinOver.ItemsSource = db.Producto.Where(x=>!pregunta1.Contains(x.Procesador) && !pregunta2.Contains(x.Ventilador)).Select(x => x.marcar).Distinct().ToList();
(也就是说,如果我理解你的问题)。