2012-09-04 209 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);