여기 linq있는 http://sqlfiddle.com/#!6/a1c8d/2 SQL 변환하려면 노력하고있어. 예상 결과는 sqlfiddle에 있지만, LINQ는 더 많은 행을 반환합니다.Linq C# 그룹화 합계
추 신 : sqlfiddle에서 오염을 증가시키지 않고 필드를 줄여서 내 문제에 집중하십시오.
resultado.Dados =
(
from a in db.AgendaHorario
join b in db.Agenda on a.AgendaID equals b.AgendaID
select new
{
a.AgendaID,
Horario = a.Horario,
Controle = a.Controle,
Cor = b.Cor,
Agenda = b.Sigla
}).AsEnumerable()
.GroupBy(g => new
{
g.AgendaID,
Horario = g.Horario.ToString("dd/MM/yyyy"),
Data = g.Horario.ToString("yyyy-MM-dd"),
g.Controle,
g.Agenda,
g.Cor
})
.Select(s => new
{
id = s.Key.AgendaID,
title = s.Key.Agenda,
start = s.Key.Data,
color = String.IsNullOrEmpty(s.Key.Cor) ? "3a87ad" : s.Key.Cor,
className = "",
someKey = 1,
allDay = false,
Resultado0 = s.Sum(m => m.Controle == "L" ? 1 : 0).ToString(),
Resultado1 = s.Sum(m => m.Controle == "B" ? 1 : 0).ToString()
});
귀하의 피들은 LINQ 쿼리와 유사하지 않습니다. 피들에 모든 것을 올리셨습니까? –
왜 .AsEnumerable 뒤에 그룹을 만들겠습니까? 왜 당신의 쿼리에서'DateTime.ToString()'을 사용하고 뷰 레이어가 아닌가? Date 부분 만 가져 오려고한다면'EntityFunction.TruncateDate' 사용을 고려하십시오 ... – Aron