1

我想要实现的是来自多个表的字符串列表。我目前有一个简单的数据库结构,它有一个带有 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));

或者

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 个查询,即使这意味着使用 Parent 表?

4

2 回答 2

3

您只需要使用Concat运算符:

var results = Child1.Select(c1 => c1.Name)
              .Concat(Child2.Select(c2 => c2.Name)).ToList();
于 2012-12-10T19:35:10.213 回答
0

您可以使用Union运算符,它还会为您删除重复项:

var q = Child1.Select(c1 => c1.Name).Union(Child2.Select(c2 => c.Name)).ToList();
于 2012-12-10T19:44:48.890 回答