C# linq查询中的orderby计数(其他_表)

C# linq查询中的orderby计数(其他_表),c#,linq,C#,Linq,如标题中所述,我想使用另一个表的列orderby结果表 var products = (from p in db.Products join o in db.OrderDetails on p.ProductID equals o.ProductID orderby count(o.Quantity) <-- want to do something like this select p).Disti

如标题中所述,我想使用另一个表的列
orderby
结果表

var products = (from p in db.Products
               join o in db.OrderDetails on p.ProductID equals o.ProductID
               orderby count(o.Quantity) <-- want to do something like this
               select p).Distinct().Take(8).ToList();

我得到了想要的结果。但是我如何使用LINQ呢?

只要创建一个字典,其中键是产品,值是计算数量,然后执行查询

或者这样做:

var product = p in resultOfTheJoin
        let count = resultOfTheJoin.Quantity.Count()
        orderby count
        select p;

如果我明白的话,你需要一个像那样的。请试试这个:

       var query = (from p in db.Products
                     join o in db.OrderDetails on p.ProductID equals o.ProductID into orderTemp
                     select new type
                     {
                       Product_id = p.Product_id,
                       //set product attribtes,
                       OrderDetail_id = orderTemp.OrderDetail_id,
                       Quantity = orderTemp.Quantity,
                       // set OrderDetail attributtes

                     }.OrderBy(l => l.Quantity.Count()).ToList();

你尝试过什么,没有得到什么?PS:你的查询看起来很混乱。你有任何与你想要的内容等价的sql语句吗?
       var query = (from p in db.Products
                     join o in db.OrderDetails on p.ProductID equals o.ProductID into orderTemp
                     select new type
                     {
                       Product_id = p.Product_id,
                       //set product attribtes,
                       OrderDetail_id = orderTemp.OrderDetail_id,
                       Quantity = orderTemp.Quantity,
                       // set OrderDetail attributtes

                     }.OrderBy(l => l.Quantity.Count()).ToList();