是否可以将Linq语句的一部分放入变量中



我来自Perl,用C#和Linq做第一步。我的问题是,是否有一种方法可以像这样将Linq语句的部分放在变量中(代码仅用于简短说明,未经测试(,使其比每次都写新语句更容易、更灵活地使用几次。也可以对同一MQuery使用不同的Order语句(Select Case、Array(。

var orderstatement = "orderby m.Reihenfolge ascending, m.Datum descending, m.Titel ascending";
var MQuery = (from m in _context.Movie
orderstatement
where m.Sichtbar == true && m.Gesperrt == false
select m;

谢谢你的建议。

您可以用扩展方法尝试类似的方法。首先,通过电影方法定义顺序

public static IQueryable<Movie> OrderMovies(this IQueryable<Movie> movies) {
return movies.OrderBy(m => m.Reihenfolge).ThenByDescending(m => m.Datum).ThenBy(m => m.Title);
}

然后在电影查询中使用它

var movies = _context.Movies.Where(m => m.Sichtbar == true && m.Gesperrt == false).OrderMovies().Select(m => m)

最新更新