我正在开发一个 .NET 应用程序,我需要根据条件过滤来自 SQL Server 2008 的数据。我的数据结构如下所示:
结果应按Key进行分组和排序。默认情况下,每个Key都应该返回Revision为null的行,但是如果设置了revisionParameter,则应该返回具有相应Revision号的行。如果参数为 2,则输出应为:
abc 2 FALSE
def null TRUE
ghj 2 FALSE
klm null TRUE
如何在 LINQ 中完成此操作?谢谢
编辑:对lazyberezovsky的回应:您的LINQ表达式重写为lambda:
partial void RuleEntriesByUserSaveId_PreprocessQuery(int? UserSaveId, ref IQueryable<RuleEntry> query)
{
query = query.Where(re => re.Revision == null || re.Revision == value)
.GroupBy(re => re.Key)
.Select(g => g.FirstOrDefault(x => x.Revision != null) ?? g.First());
}