Tud*_*ean 2 linq linq-to-objects linq-to-entities linq-to-sql
我有以下查询开头:
var query = from p in db.Products
from pc in p.NpProductCategories
where pc.CategoryId == categoryId
select p;
Run Code Online (Sandbox Code Playgroud)
我正在对它应用更多的过滤,最后我想对结果进行排序:
if (orderBy == ProductSortingEnum.Name)
query = query.OrderBy(x => x.Name);
else
query = query.OrderBy(............);
Run Code Online (Sandbox Code Playgroud)
我的大问题(来自不知道linq太好了)就是这里的ELSE.如何按不在当前结果集中的列对结果进行排序?我想以某种方式链接到orderby中的另一个linq查询.我试图实现的排序是使用ProductId链接到NpProductVariants查询以匹配NpProductVariant和Products,并按NpProductVariant的价格排序
假设您在dbml中设置了关系...
一对一(以及多对一):
query = query.OrderBy(p => p.NpProductVariant.Price);
Run Code Online (Sandbox Code Playgroud)
一对多:
query = query.OrderBy(p => p.NpProductVariants.Select(v => v.Price).Max());
Run Code Online (Sandbox Code Playgroud)
也:
var query =
from p in db.Products
where p.NpProductCategories.Any(pc => pc.CategoryId == categoryId)
select p;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2900 次 |
| 最近记录: |