如何在LINQ中使用union all?

Mur*_*uga 55 linq union linq-to-sql

如何在LINQ TO SQL中使用union all.我使用以下代码进行联合,然后如何将此用于union all?

List<tbEmployee> lstTbEmployee = obj.tbEmployees.ToList();
List<tbEmployee2> lstTbEmployee2 = (from a in lstTbEmployee
                                    select new tbEmployee2
                                    {
                                        eid = a.eid,
                                        ename = a.ename,
                                        age = a.age,
                                        dept = a.dept,
                                        doj = a.doj,
                                        dor = a.dor

                                    }).Union(obj.tbEmployee2s).ToList();
Run Code Online (Sandbox Code Playgroud)

Jon*_*ell 105

ConcatUNION ALLSQL中的LINQ等价物.

我在LINQPad中设置了一个简单的例子来演示如何使用UnionConcat.如果你没有LINQPad,那就搞定吧.

为了能够看到这些设置操作的不同结果,第一和第二组数据必须至少有一些重叠.在下面的示例中,两个集合都包含单词"not".

打开LINQPad并将语言下拉列表设置为C#语句.将以下内容粘贴到查询窗格中并运行它:

string[] jedi = { "These", "are", "not" };
string[] mindtrick = { "not", "the", "droids..." };

// Union of jedi with mindtrick
var union =
  (from word in jedi select word).Union
  (from word in mindtrick select word);

// Print each word in union
union.Dump("Union");
// Result: (Note that "not" only appears once)
// These are not the droids...

// Concat of jedi with mindtrick (equivalent of UNION ALL)
var unionAll =
  (from word in jedi select word).Concat
  (from word in mindtrick select word);

// Print each word in unionAll
unionAll.Dump("Concat");
// Result: (Note that "not" appears twice; once from each dataset)
// These are not not the droids...

// Note that union is the equivalent of .Concat.Distinct
var concatDistinct =
  (from word in jedi select word).Concat
  (from word in mindtrick select word).Distinct();

// Print each word in concatDistinct
concatDistinct.Dump("Concat.Distinct");
// Result: (same as Union; "not" only appears once)
// These are not the droids...
Run Code Online (Sandbox Code Playgroud)

LinqPad的结果如下所示:

在此输入图像描述