我更喜欢查询方法语法,但有时看起来更难。在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();
答案 0 :(得分:2)
string[] names = _db.VendorsTagged
.Where(v => v.ProfileId == pid)
.Select(v => v.UserName).ToArray();
这相当于您的查询理解语法示例,并且应该以相同的方式工作。