如何用lambda表达式c#连接两个表



我有一个查询,结果是我必须用lambda连接两个表,这个表达式只有一个,但我如何用两个呢?

这是我的SQL查询

declare @Cod_Empresa int
set @Cod_Empresa = 9
select 
Margen.Codigo_Medidor, Margen.Fecha, Margen.Codigo_barra, Margen.Total_Balance
from tb_margen_operativo_cierre Margen, tb_medidor Medi
where Margen.Codigo_medidor = Medi.Codigo_Medidor
and Medi.Codigo_empresa  = @Cod_Empresa

这是我的C#代码

int codigoempresa = 9 
var margen = cm.tb_margen_operativo_cierre. //I need 2 tables tb_margen_operativo_cierre and tb_medidor
Where(x => x.Fecha <= fin && x.Fecha >= inicio).
GroupBy(r => r.Fecha).
Select(v => new
{
Total_Balance = v.Sum(x => x.Total_Balance),
}).AsEnumerable().Select(x => new tb_margen_operativo_cierre
{
Total_Balance = x.Total_Balance,

}).ToArray();
for (int i = 0; i < margen.Length; i++)
{
valormes = valormes + margen[i].Total_Balance;
valorgraficodiario[i] = margen[i].Total_Balance;
}

怎么做到的?感谢

首先,您必须改进您的查询,改进如下:

SELECT 
Margen.Codigo_Medidor, Margen.Fecha, Margen.Codigo_barra, Margen.Total_Balance
FROM 
tb_margen_operativo_cierre Margen INNER JOIN tb_medidor Medi
ON 
Margen.Codigo_medidor = Medi.Codigo_Medidor
WHERE 
Medi.Codigo_empresa  = 9;

现在,如果您的表之间有关系,您可以在LINQ:中执行此操作

Asuming:一个Margen可以有多个Medi。在LinQ中,您可以使用:

from Margen tb_margen_operativo_cierre 
join Medi in tb_medidor on Margen.Codigo_medidor equals Medi.Codigo_Medidor
where Medi.Codigo_empresa == 9;

结果应该与您的查询相同。

最新更新