Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ-其中,组和_C#_Sql_Linq_Where Clause - Fatal编程技术网

C# LINQ-其中,组和

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

我有以下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_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
}