Entity Framework fetch Top 10 rows

2019-05-14 21:08发布

问题:

I have a 3 tables in SQL database

tblVideos:

VideoID     int PK
Title       varchar(100)
Decription  varchar(100)

tblTags:

TagID       int PK
TagText     varchar(100)

tblVideosToTags:

VideoID     int PK, FK to Videos
TagID       int PK, FK to Tags

In Entity Framework (v6-latest-nightly-build) I have 2 classes Video and Tag with many-to-many relationships. I need a help with building a LINQ to Entities or LINQ to SQL query which meets following conditions:

Top 10 records from Tags, which is mostly used. So probably some summing/count/grouping needed

回答1:

If you wanted to find the top 10 Videos with the most number of Tags, you would probably find it easier, but in fact what you want to do now is exactly the same. You just need the top 10 Tags with the most number of Videos. Use this:

var mostUsedTags = db.Tags.OrderByDescending(t => t.Videos.Count).Take(10);