C# EF按一对多关系排序

C# EF按一对多关系排序,c#,entity-framework,C#,Entity Framework,我有两个表:Products和ProductsRank,它们有一对多的关系。用户可以对任何产品进行向上投票和向下投票,并为每个用户添加一行到ProductsRank表中,其中包含true或false值 在搜索栏中,当用户键入产品名称时,我希望获得排名最高的产品列表 var products = _productsService.GetAllQuerable ( x => x.ProductsRank.Where(y => y.

我有两个表:
Products
ProductsRank
,它们有一对多的关系。用户可以对任何产品进行向上投票和向下投票,并为每个用户添加一行到
ProductsRank
表中,其中包含true或false值

在搜索栏中,当用户键入产品名称时,我希望获得排名最高的产品列表

 var products = _productsService.GetAllQuerable
            (
                x => x.ProductsRank.Where(y => y.TypeVote != null).OrderByDescending(y => y.TypeVote) &&
                x.Title.Contains(term)
            ).Take(5);

这是我所能做的,我知道这是完全错误的。我该怎么做?

什么是TypeVote?假设它是0/1,您可以尝试
var top5ProductRanking=\u productsService.GetAllQuerable.OrderByDescending(p=>p.ProductsRank.Sum(d=>d.TypeVote)).Take(5)什么是类型投票?假设它是0/1,您可以尝试
var top5ProductRanking=\u productsService.GetAllQuerable.OrderByDescending(p=>p.ProductsRank.Sum(d=>d.TypeVote)).Take(5)