如何将 SQL 子查询转换为 Linq?
How to Translate SQL Subquery to Linq?
我需要将此查询转换为 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 上下文 = 新 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();
并排
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 }
我需要将此查询转换为 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 上下文 = 新 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();
并排
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 }