2

我试图了解 Sql SelectMany。我想在下面的查询中使用它来查看使用 SelectMany 与 Select 相比如何生成结果。我知道我可以在这里只使用一个选择...我有一个表用户,其 Id 为 int,位置为字符串。当我运行下面的查询时,出现异常“System.String 类型不支持序列运算符”。你能告诉我如何迭代 SelectMany 返回的结果并将结果打印到控制台。

UsersDataContext db = new UsersDataContext();

var results = db.Users.Where(u=> u.ID == 5 || u.ID == 6).SelectMany(u => u.Location);

foreach (var c in results)
{
    Console.WriteLine(c);
} 
4

1 回答 1

2

您应该在此处使用 .Select。

来自 SelectMany 上的 MSDN:

将序列的每个元素投影到 IEnumerable 并将生成的序列展平为一个序列。

基本上 SelectMany 的工作是将 lambda 指向一个集合,然后将其展平为单个结果集。您的示例中的位置不是集合

于 2012-07-16T02:46:48.107 回答