J'ai une requête LINQ:
var list = from t in ctn.Items
where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
orderby t.Delivery.SubmissionDate
select t;
Comment puis-je modifier cette requête pour sélectionner seulement cinq résultats dans la base de données?
Réponses:
la source
take
uniquement les 5 premières lignes de la base de données?La solution:
la source
Ceci peut également être réalisé en utilisant l'approche basée sur Lambda de Linq;
la source
[Offrant une réponse un peu plus descriptive que la réponse fournie par @Ajni .]
Cela peut également être réalisé en utilisant la syntaxe fluide LINQ :
Notez que chaque méthode (
Where
,OrderBy
,Take
) qui apparaît dans cette déclaration de LINQ prend une expression lambda comme argument. Notez également que la documentation deEnumerable.Take
commence par:la source
Additional information
Parfois, il est nécessaire de lier un modèle à une vue des modèles et de donner une erreur de conversion de type . Dans cette situation, vous devez utiliser la
ToList()
méthode.la source
En pensant simplement que vous ne vous sentez pas familier avec la séquence From-> Where-> Select, comme dans le script sql, c'est comme Select-> From-> Where.
Mais vous ne savez peut-être pas que dans Sql Engine, il est également analysé dans la séquence ' From-> Where-> Select ', pour le valider, vous pouvez essayer un script simple
et cela ne fonctionnera pas, la raison est que le moteur analysera Where before Select , donc il ne connaîtra pas l'alias i dans le where . Pour que cela fonctionne, vous pouvez essayer
la source