C# LINQ-其中,组和
我有以下SQL代码:C# LINQ-其中,组和,c#,sql,linq,where-clause,C#,Sql,Linq,Where Clause,我有以下SQL代码: select A.Recurso_Id, sum(case when B.cita_id is null then 0 else 1 end) as Total_Eventos, a.Recurso_Nombre, a.Recurso_Email,a.Recurso_Activo from Agenda_Recurso a left join Agenda_Cita B on A.Recurso_Id=B.Recurso_Id where B.Cita_Fecha_Fina
select A.Recurso_Id, sum(case when B.cita_id is null then 0 else 1 end) as Total_Eventos, a.Recurso_Nombre, a.Recurso_Email,a.Recurso_Activo
from Agenda_Recurso a left join Agenda_Cita B
on A.Recurso_Id=B.Recurso_Id
where B.Cita_Fecha_Final > getdate()
group by A.Recurso_Id, a.Recurso_Nombre, a.Recurso_Email, a.Recurso_Activo
而且,我需要转给LINQ,实际上我有以下代码:
public List<Recurso> Cantidad_Eventos_Recurso(string pConexion, long pEmpresa, long pSucursal)
{
DateTime dt = DateTime.Now;
List<TRegAgendaCita> _LstCitas = MetodosEnLinea.Catalogo.AgendaEvento_Lista(pConexion, pSucursal);
List<TRegAgendaRecurso> _LstRecursos = MetodosEnLinea.Catalogo.AgendaRecurso_Lista(pConexion, pEmpresa);
if (_LstCitas == null)
return null;
List<Recurso> _ListaSelect = (from Recursos in _LstRecursos
join Citas in _LstCitas on Recursos.Id equals Citas.Recurso_Id
where Citas.Fecha_Final > dt
into cleft
select new Recurso()
{
Cantidad_Eventos = cleft.Where(x => x.Recurso_Id == Recursos.Id).Count(),
Nombre = Recursos.Nombre,
Email = Recursos.Email,
Activo = Recursos.Activo,
Id = Recursos.Id
})
.ToList();
return _ListaSelect;
}
但是,在我想用今天购买最终日期的部分中,他告诉我他错了,他说:查询体必须以select子句或group子句结尾。有人能帮我吗?您查询的语法应该如下所示:
from Recursos in _LstRecursos
join Citas in _LstCitas.Where(c => c.Fecha_Final > dt) // notice the where moved here
on Recursos.Id equals Citas.Recurso_Id
into cleft
select new Recurso()
{
Cantidad_Eventos = cleft.Where(x => x.Recurso_Id == Recursos.Id).Count(),
Nombre = Recursos.Nombre,
Email = Recursos.Email,
Activo = Recursos.Activo,
Id = Recursos.Id
}
在查询语法中,不能将into子句放在where之后。如果需要查询语法,可以使用以下更详细的语法:
from Recursos in _LstRecursos
join Citas in
from c in _LstCitas
where c.Fecha_Final > dt
select c
on Recursos.Id equals Citas.Recurso_Id
into cleft
select new Recurso()
{
Cantidad_Eventos = cleft.Where(x => x.Recurso_Id == Recursos.Id).Count(),
Nombre = Recursos.Nombre,
Email = Recursos.Email,
Activo = Recursos.Activo,
Id = Recursos.Id
}