这个LINQ-to-SQL查询有效(在LINQpad中测试):
var q5 = LOGs.Where(r => r.APP_NAME == "Toaster")
.GroupBy(pol => pol.CASE_NO)
.Select(grp => grp.First())
.OrderByDescending(l => l.WHEN);
q5.Dump();
但是,它会返回每行的所有列
如何优化Select()部分以指定某些列?
通过在查询中添加.ToList(),然后查询q5,我可以分两步完成:
var q5a = q5.Select(r => new {CASE=r.CASE_NO, WHEN = r.WHEN});
q5a.Dump();
我可以用一个陈述而不是两个陈述来完成吗? 谢谢 -
答案 0 :(得分:1)
为什么不在哪里过滤?
var q5 = LOGs.Where(r => r.APP_NAME == "Toaster")
.Select(r=> new{r.CASE_NO, r.WHEN})
.GroupBy(pol => pol.CASE_NO)
.Select(grp => grp.First())
.OrderByDescending(l => l.WHEN);
记得new {CASE=r.CASE_NO, WHEN = r.WHEN}
因为不同的属性名称而创建了一个新的匿名类型,new {r.CASE_NO, r.WHEN}
没有!