如何将sql查询转换为linq查询

如何将sql查询转换为linq查询,linq,Linq,如何将此sql查询转换为linq查询?在asp.net中 SELECT distinct P.Pid,P.Name,PC.categoryName, (select count(id) from POrderdetails where id=p.Pid)as detailsCount FROM PTable P INNER JOIN PCATEGORY PC ON PC.pcategoryId=P.pCategoryId ORDER BY detailsCount desc 根据你的评

如何将此sql查询转换为linq查询?在asp.net中

 SELECT  distinct  P.Pid,P.Name,PC.categoryName, 
(select count(id) from POrderdetails where id=p.Pid)as detailsCount
FROM PTable P INNER JOIN PCATEGORY PC ON PC.pcategoryId=P.pCategoryId
ORDER BY detailsCount desc

根据你的评论,我已经更新了这个,包括类别名称。请注意,查询会将它们选择到一个匿名对象中——如果您有一个具有属性的实际类,则可以改为使用带有属性赋值的类构造函数来更改它。注意,我也给了伯爵一个不同的名字。因为你已经有了Pid,我想Pid会让人很困惑

 var products = PTable.Select( p => new {
                                 Pid = p.Pid,
                                 Name = p.Name,
                                 DetailCount = p.Orderdetails.Count(),
                                 Category = p.PCATEGORY.CategoryName
                        });