我有两个桌子。我想执行一个联合查询,使LINQ从两个表中选择,但只返回一列。
表1:
ID, Name1, Email
表2:
ID, Name2, Email
从表中选择Name1和Name2以返回一列。
所以,我想选择
Name
--------
Helen
Mike
Joe
不是:
Name1
-------
Helen
Mike
Name2
-------
Joe
答案 0 :(得分:0)
如果只需要选择名称,
var result = table1.Select(x=>x.Name1).Union(table2.Select(x=>x.Name2));
例如,使用集合模拟场景。
var table1 = new List<Table1>
{
new Table1{ID=1,Name1="Helen ",Email=""},
new Table1{ID=2,Name1="Mike",Email=""},
};
var table2 = new List<Table2>
{
new Table2{ID=1,Name2="Joe",Email=""},
};
哪里
public class Table1
{
public int ID {get;set;}
public string Name1{get;set;}
public string Email{get;set;}
}
public class Table2
{
public int ID {get;set;}
public string Name2{get;set;}
public string Email{get;set;}
}
查询将返回
Helen
Mike
Joe
请注意,Union将消除重复项。如果您想包括重复项,Concat将是您的理想之选。如果您有兴趣阅读有关区别的更多信息,this thread将是一个不错的参考