我有两个不同的数据库,其中包含两个具有完全相同设计的表。如何最有效地组合这两个查询的结果?我知道我可以将每个结果放入字典或数组或其他任何内容,但我想有一种更简单的方法可以做到这一点。
var db1 = //A database object connected to database1
var db2 = //A database object connected to database2
var result1 = db1.table.where(a=>a.value>0);
var result2 = db2.table.where(a=>a.value>0);
var resultSum = result1+result2; //???
谢谢!
附录:Concat或Union,对于这个特殊情况更好,为什么?谢谢!
答案 0 :(得分:24)
您只能组合相同类型的枚举,您可以将它们都投影到公共类,然后将它们连接起来:
var result1 = db1.table.Where(a=>a.value>0).Select( x=> new Foo() { /*set props*/ });
var result2 = db2.table.Where(a=>a.value>0).Select( x=> new Foo() { /*set props*/ });
var resultSum = result1.Concat(result2);
答案 1 :(得分:6)
var resultUnion = Enumerable.Union(result1, result2)
或使用扩展方法语法
var resultUnion = result1.Union(result2);
答案 2 :(得分:3)
最好的方法是使用Concat:
var resultingEnumerable = result1.Concat(result2);
答案 3 :(得分:0)