2

我更喜欢查询方法语法,但有时它看起来要困难得多。在 SQL 语言中,我可以轻松地选择单个列并在另一列上设置 where 子句条件。

SELECT UserName FROM VendorsTagged WHERE ProfileID=@pid

在 LINQ 查询理解语法中,我可以轻松地将其转换为:

string[] names = (from v in _db.VendorsTagged
                  where v.ProfileID == pid
                  select v.UserName).ToArray();

在 LINQ 查询方法语法中,我无法让它工作。如果我尝试将 where 子句添加到下面的查询中,它似乎要求该列也位于 select 子句中,这不是我想要的结果。有任何想法吗?

string[] names = _db.VendorsTagged.Select(s => s.UserName).ToArray();
4

1 回答 1

3
string[] names = _db.VendorsTagged
                    .Where(v => v.ProfileId == pid)
                    .Select(v => v.UserName).ToArray();

这相当于您的查询理解语法示例,并且应该以相同的方式工作。

于 2013-05-30T18:40:02.620 回答