C# LINQ以错误响应离开Join
我需要使用LINQ进行左连接 我正在使用以下代码:C# LINQ以错误响应离开Join,c#,entity-framework,linq,C#,Entity Framework,Linq,我需要使用LINQ进行左连接 我正在使用以下代码: var query = (from Geral in listEstadosGeral join Coberto in listEstadoCoberto on Geral.Id equals Coberto.Id into temp from j in tem
var query = (from Geral in listEstadosGeral
join Coberto in listEstadoCoberto
on Geral.Id equals Coberto.Id
into temp
from j in temp.DefaultIfEmpty()
select new Estado()
{
Sigla = Geral.Sigla,
Nome = Geral.Nome
}).ToList();
在ListStadoGeral中我有27张唱片,在ListStadoCoberto中我有5张唱片
该查询有27条记录
此代码有什么问题?如果要获取ListStatoGeral中存在但ListStatoOberto中不存在的记录,请执行以下操作:
var query = (from Geral in listEstadosGeral
join Coberto in listEstadoCoberto
on Geral.Id equals Coberto.Id
select new Estado()
{
Sigla = Geral.Sigla,
Nome = Geral.Nome
}).ToList();
var result = listEstadosGeral.Where(p => !listEstadoCoberto.Any(p2 => p2.ID == p.ID)).ToList();
这5条记录与前27条记录不同吗?我假设,您有27条记录,因为有5条记录与27条记录的id匹配。它们具有相同的id。那么行为是预期的。因为它们具有相同的id,所以结果集应该有所有27行,即使您使用的是没有id匹配的左联接,结果也将是27行。@b3r3ch1t问题在问题中没有明确指定。请具体说明,以便给出具体的解决方案。在ListStatDoGeral中我有27条记录,在ListStatDoCoberto中我有5条记录。该查询有27条记录。这正是
左外部联接的预期结果。投票结束,因为不清楚你在问什么。