C# 实体框架中的左join和case子句LINQ
我需要做一个左连接,并使用select操作符。 我的LINQ basic是这样的,可以工作: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
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提供,因此您需要修改该行以获得值