我正在开发一个.NET应用程序,我需要根据条件过滤来自SQL Server 2008的数据。我的数据结构是这样的:LINQ - 过滤器重复条件
结果进行分组和排序的关键。默认情况下,应该为每个Key返回具有Revision null的行,但是如果revisionParameter被设置,则应该返回具有相应版本号的行。如果参数为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());
}
你尝试过什么吗? –