Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.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# 实体框架中的左join和case子句LINQ_C#_Asp.net_Linq_Entity Framework - Fatal编程技术网

C# 实体框架中的左join和case子句LINQ

C# 实体框架中的左join和case子句LINQ,c#,asp.net,linq,entity-framework,C#,Asp.net,Linq,Entity Framework,我需要做一个左连接,并使用select操作符。 我的LINQ basic是这样的,可以工作: resultado.Dados = ( from a in db.AgendaHorario join b in db.Agenda on a.AgendaID equals b.AgendaID join c in db.Profissional on a.ProfissionalID equals c.ProfissionalID into d

我需要做一个左连接,并使用select操作符。 我的LINQ basic是这样的,可以工作:

resultado.Dados =
    (
        from a in db.AgendaHorario
        join b in db.Agenda on a.AgendaID equals b.AgendaID
        join c in db.Profissional on a.ProfissionalID equals c.ProfissionalID into d
        from e in d.DefaultIfEmpty()                        
        select new
        {
            id = a.AgendaHorarioID,
            Medico = e.Identificacao     
        });
但我必须添加一个新字段,并对其进行格式化,然后我的LINQ如下所示:

resultado.Dados =
  (
    from a in db.AgendaHorario
    join b in db.Agenda on a.AgendaID equals b.AgendaID
    join c in db.Profissional on a.ProfissionalID equals c.ProfissionalID into d
    from e in d.DefaultIfEmpty()                        
    select new
    {
        id = a.AgendaHorarioID,
        Medico = e.Identificacao,
        start = a.Horario.ToString("yyyy-MM-dd HH:mm:ss")            
    }
  );
发生以下错误:

LINQ to Entities does not recognize the method 'System.String ToString(System.String)' method, and this method cannot be translated into a store expression.
如果在
db.AgendaHorario.ToList()
db.Agenda.ToList()
db.Profissional.ToList()
中添加ToList()或AsEnumerable()

Object reference not set to an instance of an object.

我应该怎么做才能使大小写、字段和格式化字段具有左连接?尝试在变量中设置字符串,然后将其分配给查询,如下所示:

resultado.Dados =
  (
    from a in db.AgendaHorario
    join b in db.Agenda on a.AgendaID equals b.AgendaID
    join c in db.Profissional on a.ProfissionalID equals c.ProfissionalID into d
    from e in d.DefaultIfEmpty()                        
    select new
    {
        id = a.AgendaHorarioID,
        Medico = e.Identificacao,
        start = a.Horario.ToString("yyyy-MM-dd HH:mm:ss")            
    }
  );
试试这个:

resultado.Dados =
(
    from a in db.AgendaHorario
    join b in db.Agenda on a.AgendaID equals b.AgendaID
    join c in db.Profissional on a.ProfissionalID equals c.ProfissionalID into d
    from e in d.DefaultIfEmpty()                        
    select new
    {
        id = a.AgendaHorarioID,
        Medico = e.Identificacao,
        start = a.Horario
    }).AsEnumerable().Select(x => new
    {
        id = x.id,
        Medico = x.Medico,
        start = x.start.ToString("yyyy-MM-dd HH:mm:ss")            
    }
);

对不起,我不明白。您传递的代码无效。上面代码的第一行需要由db.AgendaHorario提供,因此您需要修改该行以获得值