将 SQL 转换为 LINQ
本文关键字:LINQ 转换 SQL | 更新日期: 2023-09-27 18:34:25
我是 LINQ 的新手,在翻译以下代码时感到困惑。 我目前正在为 SQL 数据库编写前端。 我有一个 SQL 视图,它给出了一个标识值列表 (electrolyte_id(。 该列表按电解液标识值分组,并按electrolyte_max_date(视图(中每个工艺储罐标识值(process_tanks_id(的最长时间进行过滤。 下面是 SQL 查询。
SELECT electrolyte.electrolyte_id, electrolyte.process_tanks_id, electrolyte.date_active
FROM electrolyte_max_date INNER JOIN electrolyte ON
electrolyte_max_date.max_date = dbo.electrolyte.date_active AND
electrolyte_max_date.process_tanks_id = electrolyte.process_tanks_id
我已经能够在 LINQ 中翻译electrolyte_max_date查询。 下面是代码:
var filter_electrolyte_list = from tbl_electrolyte in _ds.electrolyte.AsEnumerable()
group tbl_electrolyte by
tbl_electrolyte.process_tanks_id into tankgroup
select new
{
tank = tankgroup.Key,
maxdate = tankgroup.Max(tbl_electrolyte =>
tbl_electrolyte.date_active)
};
我的问题是:如何将filter_electrolyte_list LINQ 查询连接到另一个 LINQ 查询中的电解质表? 我需要复制在 SQL 视图中获得的相同结果。
提前感谢任何帮助。乔纳森
我觉得你想做的是联合两个Linq查询?
var filter_electrolyte_list = (from tbl_electrolyte in _ds.electrolyte.AsEnumerable()
group tbl_electrolyte by
tbl_electrolyte.process_tanks_id into tankgroup
select new
{
tank = tankgroup.Key,
maxdate = tankgroup.Max(tbl_electrolyte =>
tbl_electrolyte.date_active)
}).Union( //New Linq Query that has the same select statement);
确保每个查询中的选定变量与常规 SQL 联合匹配。