[c#]Max () 会从 SQL 到 Linq 的方法

标签: sql Linq C#
发布时间: 2017/2/28 22:48:16
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

嗨我想转换此 SQL 脚本中的 Linq 表达式

但我 don´t 知道怎么在 Linq 中的最大方法

有人可以帮我吗?

谢谢!

SELECT c.Nome, 
       c.NumeroRG, 
       f.Tipo, 
       f.Descricao, 
       f.DataHora,
       f.IdCliente,
       c.IdCliente,
       f.IdFrequencia    
FROM Cliente c, Frequencia f
WHERE f.Tipo = 1
AND   c.IdCliente = f.IdCliente
AND   cast(f.DataHora as date) = cast(getdate() as date)
AND   f.IdFrequencia = (select MAX(fr.IdFrequencia) 
                        from frequencia fr 
                        where fr.IdCliente =c.IdCliente)

解决方法 1:

也许这样的事情︰

var query = from client in db.Cliente
            join freq in db.Frequencia
            on client.IdCliente equals freq.IdCliente
            where freq.Tipo == 1 
            && freq.DataHora.Date == DateTime.Now.Date
            && freq.IdFrequencia == db.Frequencia.Where(f => f.IdCliente == client.IdCliente)
                                                  Max(f => f.IdFrequencia)
            select new { .... };

也许你需要替换 DateTime.Now.Date / DateTime.Today SqlFunctions.DatePart 如果您使用 LINQ 到实体,但在你还没有提及。

官方微信
官方QQ群
31647020