我想要实现的是来自多个表的字符串列表。我目前有一个简单的数据库结构,带有2个子表的ParentTable(让我们说Child1和Child2)。 Child1& Child2有一个名为Name的nvarchar(50)类型的列。目前,我可以执行多个查询来实现单个字符串列表:
var myList = new List<string>();
myList.AddRange(Child1.Select(c1 => c1.Name));
myList.AddRange(Child2.Select(c2 => c2.Name));
OR
var myList = new List<string>();
myList.AddRange(ParentTable.SelectMany(x => x.Child1.Select (c1 => c1.Name)));
myList.AddRange(ParentTable.SelectMany(x => x.Child2.Select (c2 => c2.Name)));
我的最终问题是,是否可以将其合并为1个查询,即使这意味着使用父表?
答案 0 :(得分:3)
您只需使用Concat
运算符:
var results = Child1.Select(c1 => c1.Name)
.Concat(Child2.Select(c2 => c2.Name)).ToList();
答案 1 :(得分:0)
您可以使用Union
运算符,它也会删除重复项:
var q = Child1.Select(c1 => c1.Name).Union(Child2.Select(c2 => c.Name)).ToList();