在LINQ SQL中转换MySQL查询

时间:2015-01-20 15:33:00

标签: c# linq linq-to-sql

我试图在LINQ to SQL中进行MySQL查询,但我有一个疑问。我如何"总和(0.5)作为QtdeDias"在LINQ to SQL?

查询:

Select CL.NomeDeGuerra as Colaborador, '' as Gerente, 'Bloqueio' as Cliente,     'Bloqueio' as Frente, 
Date_Format(A.DataReferencia, '%Y-%m-01 00:00:00') as Periodo, 'Bloqueio' as   Atividade, Sum(0.5) as QtdeDias
From Agenda A
join Colaborador CL on (A.ColaboradorID = CL.ID)
Where CL.Socio = 0 and A.TipoAgenda = 2 and A.IsDeleted = 0 and CL.ID = 29
group by CL.NomeDeGuerra, Concat('BLOQUEIO-', A.Descricao),    Date_Format(A.DataReferencia, '%Y/%m')

Linq to SQL:

var recursos = from a in this.Context.Agenda
                     join cl in this.Context.Colaborador on a.ColaboradorID equals cl.ID
                     where
                         cl.ID == colaboradorId
                         && cl.Socio == 0
                         && a.TipoAgenda == 2
                         && !a.IsDeleted
                     group new { cl, a } by new { cl.NomeDeGuerra, a.Descricao, a.DataReferencia } into g
                     select new
                     {
                         FrenteProjetoID = 0,
                         Colaborador = g.Key.NomeDeGuerra,
                         Gerente = "",
                         Cliente = "Bloqueio",
                         Frente = "Bloqueio",
                         DataReferencia = g.Key.DataReferencia,
                         Atividade = "Bloqueio",
                         QtdeDias = (decimal)0.5 ???????
                     };

谢谢!

1 个答案:

答案 0 :(得分:0)

您可以尝试使用自己创建的分组。

select new
{
    FrenteProjetoID = 0,
    Colaborador = g.Key.NomeDeGuerra,
    Gerente = "",
    Cliente = "Bloqueio",
    Frente = "Bloqueio",
    DataReferencia = g.Key.DataReferencia,
    Atividade = "Bloqueio",
    QtdeDias = g.Sum(e => 0.5m)
};