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();