如何在LINQ中使用union all?
如何在LINQ TO SQL中使用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();
Concat
是SQL中UNION ALL
的LINQ等价物。
我在LINQPad中设置了一个简单的例子来演示如何使用Union
和Concat
。 如果你没有LINQPad ,得到它。
为了能够看到这些设置操作的不同结果,第一组和第二组数据必须至less有一些重叠。 在下面的例子中,两个集合都包含单词“不”。
打开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...
LinqPad中的结果如下所示: