Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Entity Framework fetch Top 10 rows

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

like image 999
Sergey Sypalo Avatar asked Jul 05 '13 16:07

Sergey Sypalo


1 Answers

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);
like image 116
ataravati Avatar answered Sep 17 '22 20:09

ataravati