2012-09-04 46 views
0

如何使用Lambda在Linq中转换以下查询?将查询转换为LINQ

SELECT DISTINCT Registro, COUNT(Registro) as qnt 
FROM XML_Relatorio 
WHERE Arquivo = 'redenet.xml' 
AND TipoErro <> 'Imovel Inserido' 
AND TipoErro <> 'TI' 
AND DataHora BETWEEN '01-01-2012' AND '02-01-2012' 
GROUP BY Registro 
ORDER BY Registro 

我想下面的代码,但我需要一些帮助和λ

IQueryable<XML_Relatorio> quantidadeErro = db.XML_Relatorios 
    .Where(a => a.Arquivo == "redenet.xml" 
      && a.TipoErro != "Imovel Inserido" 
      && a.TipoErro != "TI"); 
+2

您有哪些问题? –

+0

'DataHora'列中的'BETWEEN'是个问题,看看我的更新 –

+1

听起来你最好是通过学习更多关于LINQ的知识。这里有人可能会给你答案一次,但从长远来看,这对你没有任何帮助。你为什么不谷歌的“LINQ group by”? – usr

回答

1

打造LINQ假设的DataHoraDateDateTime类型。

// parse the strings to datetime 
var start = DateTime.Parse("01-01-2012"); 
var end = DateTime.Parse("02-01-2012"); 

IQueryable<XML_Relatorio> quantidadeErro = db.XML_Relatorios 
    .Where(a => a.Arquivo == "redenet.xml" 
     && a.TipoErro != "Imovel Inserido" 
     && a.TipoErro != "TI" 
     // and compare them... 
     && a.DataHora > start && a.DataHora < end);