Entity Framework aller chercher le Top 10 lignes
J'ai 3 tables dans la base de données SQL
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
Dans le Cadre de l'Entité (v6-dernière-nuit-construction) j'ai 2 classes Video
et Tag
avec plusieurs-à-plusieurs liens. J'ai besoin d'une aide à la construction d'une LINQ to entities ou LINQ to SQL de la requête qui répond aux conditions suivantes:
Top 10 des enregistrements à partir d'Étiquettes, ce qui est le plus souvent utilisé. Donc probablement un peu de sommation/compter/regroupement nécessaire
- Quelle est la requête que vous avez créé jusqu'à présent?
- en fait je suis coincé au début: db.Les balises.Inclure(x => x.Les vidéos).OrderBy(... ici j'ai besoin de quelques idées
- Linq-to-SQL est un différentes, simpliste ORM - donc, vous êtes de soit à l'aide de Entity Framework (alors que vous devrez écrire Linq-to-requêtes d'Entités), OU vous êtes à l'aide de Linq-to-SQL - mais ce sont deux choses totalement distinctes, des morceaux de code
Vous devez vous connecter pour publier un commentaire.
Si vous voulais retrouver le top 10 des Vidéos avec le plus grand nombre de Balises, vous trouverez probablement plus facile, mais en fait ce que vous voulez faire maintenant est exactement le même. Vous avez juste besoin de le top 10 des Balises avec le plus grand nombre de Vidéos. Utilisez ceci:
db.Tags.OrderByDescending(t => t.Videos.Count(v => v.Lang == lang)).Take(10);
var tags = db.Videos.OrderByDescending(v => v.VideoID).Take(3).Select(v => v.Tags).SelectMany(t => t).Distinct();
Vous avez besoin d'utiliser Distinct() pour se débarrasser des doublons de balises.