如何通过LINQ将2个表与多个字段结合起来?

时间:2013-06-24 10:22:47

标签: linq union

我有两张桌子:

表1
名称柜台
A 1
B 2
C 3

表2
名称柜台
A 2
B 2
的C 3

如何获得以下结果?

名称计数器
A 1
A 2
B 2
C 3

1 个答案:

答案 0 :(得分:1)

如果数据来自关系数据库,并且ORM层是Linq2Sql或Entity Framework,则通过部分类语法扩展数据对象(表中的“行”)以覆盖等于方法(用必需的语义覆盖它,就像两个字段应该相同)并使用Enumerable。 Union 扩展方法。

或者将Union扩展方法与其他重载一起使用,该重载采用 IEqualityComparer 对象。在该对象中,您可以实现比较。 (http://msdn.microsoft.com/en-us/library/bb358407.aspx

如果这两个表是如此不同,为它们生成了不同的类,那么你应该将它们包装在第3类(适配器设计模式)中,以便能够将它们的集合一起使用并使用上面提到的方法。