LINQ to SQL – Sélectionnez les différences de propriété

J'ai deux cas:

1: .....FirstOrDefault().Description

2: ......Select(y => y.Description).FirstOrDefault()

Je soupçonne que le premier cas construit un SQL QUERY qui renvoie toutes les colonnes de AAA et le deuxième construit des cas: *SELECT DESCRIPTION FROM TABLE* .

J'ai raison?

Quelles sont les autres différences entre eux? Pourquoi utiliser un cas plutôt que l'autre?

Après votre dernière édition, maintenant cela a du sens. Vous avez raison, Select(y => y.Description).FirstOrDefault() traduirait vers SELECT TOP (1) [t0].[Description] FROM [Table] AS [t0] .

Le premier cas dépend de la clause select. Ce que vous montrez nous indique simplement que vous select la propriété Description du premier logging renvoyé. Si ce que vous vouliez dire était quelque chose comme Select(y => y).FirstOrDefault().Description , oui, il se traduirait par SELECT * FROM.. et ensuite vous obtiendrez la propriété à partir des résultats.

Il est donc plus efficace d'append le champ requirejs dans la clause select, comme dans votre deuxième exemple.

tu as raison! Vous voulez utiliser un select pour créer vos propres templates ou objects anonymes. Vous obtiendriez le less de frais généraux. Par conséquent, pourquoi choisir toutes datatables lorsque vous voulez seulement connaître la description 🙂