如何在linq查询中删除重复项

3
listOrders.DataSource = (from sp in dbdata.Specifications
                         join ord in dbdata.Orders on sp.O_id equals ord.O_id
                         join prd in dbdata.Products on ord.O_id equals prd.O_ID
                         where sp.Approve == "Yes" && 
                         sp.Awailable_BOM == "Yes" && 
                         prd.Hours_prd == null
                         orderby sp.O_id descending
                         select sp.O_id).Distinct();

在这里,我试图获取降序的值。但它总是得到升序的值。如果我移除 "Distinct()",它可以正常工作,但在添加 "Distinct()" 后就会出现这个问题。


你可以在这个链接中查看。 - Mr_Green
2
我不是Linq专家,但你尝试过在distinct之后使用orderby吗? - Mr_Green
1个回答

1

试试这个:

listOrders.DataSource = (from sp in dbdata.Specifications
                         join ord in dbdata.Orders on sp.O_id equals ord.O_id
                         join prd in dbdata.Products on ord.O_id equals prd.O_ID
                         where sp.Approve == "Yes" && 
                         sp.Awailable_BOM == "Yes" && 
                         prd.Hours_prd == null
                         select sp.O_id).Distinct().OrderByDescending();

1
在 OrderByDescending 内部,应该是 x => x.O_id 吗? - matthewr
1
0_id 是被订购的内容,注意 select - tallseth

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接