小编Bug*_*llu的帖子

Linq到Sql多个搜索Foreach循环的地方

我正在尝试使用where子句过滤表.当我单独编写查询时,它们工作正常:

IQueryable<Movie> movies = db.Movies;
movies = movies.Where(movie =>
    movie.MovieToGenres.Any(genreItem => genreItem.Genre_ID == 34)
);
movies = movies.Where(movie =>
    movie.MovieToGenres.Any(genreItem => genreItem.Genre_ID == 35)
);
Run Code Online (Sandbox Code Playgroud)

但是我必须在foreach循环中使用它:

List<int> genre_ids = new List<int>();
genre_ids.Add(34);
genre_ids.Add(35);

IQueryable<Movie> movies = db.Movies;
foreach (var genre_id in genre_ids)
{
   movies = movies.Where(movie =>
       movie.MovieToGenres.Any(genreItem => genreItem.Genre_ID == genre_id)
   );
}
Run Code Online (Sandbox Code Playgroud)

当我这样做,SQL一边的查询参数@p0 = 35,@p1 = 35而不是@p0 = 34,@p1 = 35.我不知道为什么.

linq foreach search where linq-to-sql

3
推荐指数
1
解决办法
3268
查看次数

标签 统计

foreach ×1

linq ×1

linq-to-sql ×1

search ×1

where ×1