LINQ选择一列另一列的位置

时间:2013-05-30 17:39:38

标签: linq-to-entities entity-framework-5

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

SELECT UserName FROM VendorsTagged WHERE ProfileID=@pid

在LINQ Query Comprehension语法中,我可以轻松地将其转换为:

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();

1 个答案:

答案 0 :(得分:2)

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

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