Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 方法MAX()从SQL到Linq_C#_Sql_Linq - Fatal编程技术网

C# 方法MAX()从SQL到Linq

C# 方法MAX()从SQL到Linq,c#,sql,linq,C#,Sql,Linq,嗨,我正在尝试用Linq表达式转换这个SQL脚本 但是我不知道在Linq中如何使用MAX方法 有人能帮我吗 谢谢大家! SELECT c.Nome, c.NumeroRG, f.Tipo, f.Descricao, f.DataHora, f.IdCliente, c.IdCliente, f.IdFrequencia FROM Cliente c, Frequencia f WHE

嗨,我正在尝试用Linq表达式转换这个SQL脚本

但是我不知道在Linq中如何使用MAX方法

有人能帮我吗

谢谢大家!

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)

也许是这样的:

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替换为if-you-use-LINQ-to-Entities,但您没有提到这一点。

这很有效!谢谢

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

db.Frequencia.Maxf=>f.IdCliente==client.IdCliente不能工作,是吗?这如何知道两个Frequencia对象应通过IdFrequencia属性进行比较?我想您需要db.Frequencia.Wheref=>f.IdCliente==client.IdCliente.Maxf=>f.IdFrequenciain&&freq.IdFrequencia==db.Frequencia.Maxf=>f.IdCliente==client.IdCliente我有一个错误消息运算符==不能应用于long和bool类型的opperands=/对不起….:很好!感谢var query=来自db中的客户端。客户端在db中加入freq。客户端上的Frequencia。IDCLIENT等于freq.IDCLIENT,其中freq.Tipo==true和freq.DATAHRA.Value.Date==DateTime.Today.Date和freq.IdFrequencia==db.Frequencia.Wheref=>f.IdCliente==client.IdCliente.Maxf=>f.IdFrequencia选择新的{Nome=client.Nome,descripcao=freq.descripcao};