2017-08-17 79 views
0

我写了下面基本的SQL请求,返回所期望的结果:SQL请求LINQ要使用聚合函数SQL

SELECT c.IdC, MAX(v.[Date]) 
FROM TableV v 
JOIN TableC c ON v.IdClassified = c.IdC 
WHERE v.IdUser = 'MyIdUser' 
GROUP BY c.IdC 
ORDER BY MAX(v.[Date]) DESC, c.IdC 

我想“转换”它LINQ,但我有处理汇总函数和group by子句的困难时期。

任何想法如何将其转换为LINQ?

+1

我们如何能做到这一点,如果你不告诉我们的名字或你的变量在C#中的结构? – Hogan

+0

我不认为这是必要的...我尝试了像'var x = from v in dbContext.TableV join ...',并且我问了这个问题以获得一些帮助来完成这个linq请求。一旦我有了它,我会自己做我的业务逻辑 – user2687153

+1

所以,如果你回头看看回答的问题,你可以看到它通常需要3-10分钟(通常更少)才能得到关于此问题的任何编程问题的答案当一个问题措辞得当的时候。随意想想任何你想要的,但我已经在这个网站上多年了,你*可能*想考虑我的建议可能有帮助。也就是说,如果你想回答你的问题。如果你不想要答案,那么我会说你是在正确的轨道上。 – Hogan

回答

0

找到一个答案:

var qViews = from v in dbContext.TableV 
      join c in dbContext.TableC ON v.IdC equals c.IdC 
      where v.IdUser == idUser 
      group v by v.IdC into grp 
      let tri = grp.Max(x => x.Date) 
      orderby tri descending 
      select new { x = grp.Key /*whatever else*/ }; 

希望它可以帮助