0

我是 LINQ 的新手,并且对翻译以下代码感到困惑。我目前正在为 SQL 数据库编写前端。我有一个 SQL 视图,它给出了一个标识值列表(electrolyte_id)。该列表按电解液标识值分组,并按电解液最大日期(视图)中每个工艺罐标识值 (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 中翻译电解质最大日期查询。下面是代码:

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 视图中得到的相同结果。

提前感谢您的帮助。乔纳森

4

1 回答 1

0

我觉得你想做的是联合两个 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 联合一样匹配。

于 2012-05-16T13:16:14.703 回答