我正在尝试设置这样的查询。所以起初我选择了完整的对象..
var values = (from p in Products
where p.LockedSince == null
select p);
然后我可以选择添加额外的where
if(SupplierId > 0)
values = values.Where(p => p.SupplierId == SupplierId);
最后,我不再需要完整的产品对象了,我只需要一个简单明了且有序列表的一列(p.LocationName
)......就像这样:
values = values.Select( p.LocationName ).Distinct().OrderBy(x => x);
我尝试了类似Select(loc => new { p.LocationName })
的东西,但没有运气。
答案 0 :(得分:3)
如果您不需要中间结果,更有效的方法是编写单个查询
var values = (from p in Products
where (p.LockedSince == null && (SupplierId <=0 || p.SupplierId == SupplierId))
select p.LocationName).Distinct().OrderBy(x => x);
答案 1 :(得分:2)
values = values.Select( p => p.LocationName ).Distinct().OrderBy(x => x);