我需要将此查询翻译为Linq
SELECT m.Nombre, m.LugarSalida, m.FechaHorarioComienzo
FROM Maraton m
WHERE m.FechaHorarioComienzo >= GETDATE()
AND (m.MaxParticipantes + m.ParticipantesEnEspera) >
(SELECT COUNT(*) as "Total de participantes"
FROM ResultadoMaratonParticipante rm
where rm.IdMaraton = m.IdMaraton
GROUP BY rm.IdMaraton)
这包含一个子查询,我该怎么办?
谢谢!
注意:下一个完整代码
PW3_20152C_TP2_MaratonesEntities3 context = new PW3_20152C_TP2_MaratonesEntities3();
//Obtengo el listado de maratones
DateTime hoy = DateTime.Now;
List<Maraton> qm = (from m in context.Maraton
where m.FechaHorarioComienzo >= DateTime.Now
&& (m.MaxParticipantes + m.ParticipantesEnEspera) >
(from rm in context.ResultadoMaratonParticipante
where rm.IdMaraton = m.IdMaraton // Cannot convert query expression to intended delegate type because some of the return types in the block are not implicitly convertible to the delegate return type TPFinalWeb3
select rm).Count()
select m).ToList();
答案 0 :(得分:0)
并排
<强> SQL 强>
SELECT m.Nombre, m.LugarSalida, m.FechaHorarioComienzo
FROM Maraton m
WHERE m.FechaHorarioComienzo >= GETDATE()
AND (m.MaxParticipantes + m.ParticipantesEnEspera) >
(SELECT COUNT(*) as "Total de participantes"
FROM ResultadoMaratonParticipante rm
where rm.IdMaraton = m.IdMaraton)
<强> LINQ 强>
from m in db.Maraton
where m.FechaHorarioComienzo >= DateTime.Now
&& (m.MaxParticipantes + m.ParticipantesEnEspera) >
(from rm in db.ResultadoMaratonParticipante
where rm.IdMaraton == m.IdMaraton
select rm).Count()
select new { m.Nombre, m.LugarSalida, m.FechaHorarioComienzo }