使用 EF6 将 var 变量中的两列合并为一列

本文关键字:合并 两列 一列 EF6 变量 使用 var | 更新日期: 2023-09-27 18:32:28

>我有一个变量,正如你在这里看到的,我生成它:

var q = qcForSearchItemCode.Select(i =>new{ itemcode1=i.Material1Itemcode,itemcode2=i.Material2Itemcode}).ToList();

所以如你所见,我的q变量有两列Material1ItemcodeMaterial2Itemcode

我需要使用 EF6 将这两列合并为一列。

灾难性的解决方案是使用列表和 foreach 循环,但我认为也许有更好的解决方案?

任何建议将不胜感激。

使用 EF6 将 var 变量中的两列合并为一列

诀窍

是为每个实体创建一个小List,然后将列表展平为一个SelectMany

var q = qcForSearchItemCode
        .SelectMany(i =>new List<string>
                        { 
                            i.Material1Itemcode,
                            i.Material2Itemcode
                        }
                   ).ToList();

它创建一个包含CROSS JOINUNION的查询,因此它可能不是性能最佳的解决方案,但当不涉及"太多"记录时可能足够好。

你可以

这样做。

var q = qcForSearchItemCode.Select(i =>new{ item=(i.Material1Itemcode+i.Material2Itemcode).Split(',').Distinct()}).ToList();