Group By Sum Case子查询不必要的linq

时间:2017-09-04 00:57:19

标签: c# sql-server linq-to-sql entity-framework-6

我在linq中有以下表达式

db.Produto.Where(x => db.ProdutoGroup
    .GroupBy(y => new { y.idProduto })
    .Select(y => y.Key.idProduto).Contains(x.id))
    .GroupBy(x => new { x.composicao, x.atributos, x.idTipoProduto })
    .Select(x => new {
        qtdeProdutos = x.Count(),
        idProduto = x.Max(y => y.id),
        liberadosVenda = x.Sum(y => y.flagLiberadoVenda == true ? 1 : 0),
        valoresValidados = x.Sum(y => y.flagValoresValidados == true ? 1 : 0)
    }).ToList();

它生成以下代码sql

enter image description here

但是这样,它比这个返回我同样的东西的sql语句慢3倍,如何让linq生成这个查询?

enter image description here

0 个答案:

没有答案