[英]How to join two tables and group by ID and count in LINQ C# method syntax
[英]Linq C# method syntax, join 3 tables
我正在使用 linq 开发 ASP.NET C# WebApi。
我有这三个表:客户、联系人和部门。 在“联系人”表中,我只保存联系人所属部门的“id(departamento)”,所以在我看来,我需要显示“描述(名词)”。 我现在拥有的是以下内容:
表:
Controller:
public clientes GetById(int id)
{
projectEntities context = null;
clientes result = null;
try
{
context = GetContext();
result = context.clientes
.Include(e => e.clientes_contactos)
.FirstOrDefault(e => e.cve_cliente == id);
}
catch (Exception exception)
{
throw exception;
}
finally
{
context?.Dispose();
}
return result;
}
有了这个,我得到了客户和联系人的信息,但部门只显示了 id。 我想要完成的是这个 sql 查询:
select a.*, b.*, c.nombre from clientes as a inner join clientes_contactos as b on a.cve_cliente = b.cve_cliente inner join cat_departamentos as c on b.departamento = c.cve_departamentos where a.cve_cliente = 2006
如果我遗漏了一些信息,请告诉我,非常感谢!
解决了
正如@VadimBondaruk 所说,只需要添加这一行:
.Include(e => e.clientes_contactos.Select(cc => cc.cat_departament))
谢谢!
您可以将 LINQ 转换为
var query = (from a in context.clientes
join b in context.clientes_contactos on a.cve_cliente equals b.cve_cliente
join c in context.cat_departamentos on b.departamento equals c.cve_departamentos
where a.cve_cliente == 2006
select new {
a = a,
b = b,
c = c
})
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.