c# - 如何使用 lambda 表达式 c# 加入 2 个表
问题描述
我有一个查询结果是我必须使用 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 中执行此操作:
假设:一个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;
结果应该与您的查询相同。
推荐阅读
- typo3 - TYPO3 空体标签
- javascript - 每次循环通过条件的可能性呈指数级降低
- javascript - 使用 jquery 和 contenteditable="true" 更新值
- c# - 如何使用 Dapper.Contrib 在 .NET Core 中使用 xUnit 编写测试?
- mysql - MySQL MariaDB 服务器树莓派远程访问
- c++ - 使用 minijson-reader 库读取 json 字符串的问题
- python - Flask/Python - 如何使用来自多个 IP 摄像机的实时镜头填充 HTML 页面?
- opentok - OpenTok 按钮来控制视频
- java - 带有参数和单引号的自定义 HQL 函数
- python - 检查两个字符串之间的顺序是否保持不变