【发布时间】:2011-04-27 21:53:48
【问题描述】:
所以我正在编写一个“动态”Linq 查询。我创建了一个“选项”类,其中包含可以成为查询一部分的所有动态选项。其中一些选项属性是 List 对象,其中包含我想要返回的实体的 ID,这些实体是 SQL Server 中多对多关系的一部分。一个快速的代码示例和表格描述可能会有所帮助(为简洁起见,严重缩减)。
桌车: Id int PK, 模型 varchar(50), 年份int
表格颜色: Id int PK, 名称 varchar(50)
Table CarsXColors: CarId int PK, ColorId int PK
public IEnumerable<Car> Search(SearchOptions options)
{
var query = from car in ctx.Cars select car;
// This works just fine
if (options.MaxMileage.HasValue) query = query.Where(x => x.Mileage <= options.Mileage.Value);
// How do I implement this pseudo code. options.Colors is a List<int>
if (options.Colors.Count > 0)
{
query = query.Where( -- select cars that are in the List<int> of colors --);
}
return query;
}
【问题讨论】:
-
代码在 cmets 中,如果您愿意阅读的话。
-
感谢您澄清如此明显的事实(不是)
-
不客气。总是乐于帮助那些难以跟上的人。 :)
-
我总是很乐意帮助各种挑战者 :)
-
@Scott,我认为@Carnotaurus 是对的——评论中的问题很难注意到。可能应该把问题放在正文之外。
标签: c# linq entity-framework many-to-many