C# 通过linq从数据库中选择数据

C# 通过linq从数据库中选择数据,c#,sql,linq,C#,Sql,Linq,假设我在SQLServerCE4.0中有一个名为cars的数据库,其中有一个表 我想通过Linq在C中运行一个查询,以选择颜色为绿色和黑色的所有汽车。在本例中,表中只有4列带有颜色,但假设有30多列带有颜色名称 我知道桌子的设计可能没有意义,但我们暂时忽略这个 我可以像这样运行: var cars = from myCars in cars where green== true && black == true

假设我在SQLServerCE4.0中有一个名为cars的数据库,其中有一个表

我想通过Linq在C中运行一个查询,以选择颜色为绿色和黑色的所有汽车。在本例中,表中只有4列带有颜色,但假设有30多列带有颜色名称

我知道桌子的设计可能没有意义,但我们暂时忽略这个

我可以像这样运行:

var cars = from myCars in cars
           where green== true
           && black == true
           select new { myCars.car, myCars.registration };
但是,如果颜色列的数量增加到30+,如何使其更通用


谢谢。

鉴于您断言重新设计数据库不是一个选项,并且您希望使用LINQ,那么我可以看到这会很快变得难以处理和无法管理


然而,还是有希望的。。。看一看。这应该能够以更随意的方式使用LINQ。例如,您现在可以动态构建where表达式部分,并让它容纳任意多或任意少的列。如果将来颜色的数量增加,您还可以轻松地扩展它。

最好重新设计您的数据库,创建一个颜色表,然后创建一个多对多中间表。是的,我同意,但是假设客户很固执,重新设计数据库不是一个选项……我同意你对这个问题的评论。