2009-07-15 6 views
6

Je veux juste savoir quelle est l'expression lambda de Select * from TableName. Comme dans la norme LINQ ce sera var res=from s in db.StudentDatas select s; ici StudentData est le nom de la table.Lambda Expression de Select * from TableName

Merci.

+1

expressions Lambda sont des fonctions anonymes, pas de requêtes. Ils sont utilisés comme des parties de requêtes ... –

+5

Pourquoi des questions comme celles-ci sont-elles dépréciées, alors qu'une simple explication suffira? –

+2

@ Robert Harvey: parce que nous vivons dans un monde d'ennemis –

Répondre

12

L'expression lambda n'est pas nécessaire:

var res = db.StudentDatas; 

Vous pouvez utiliser un mais il serait plutôt inutile:

var res = db.StudentDatas.Select(s => s); 
+0

Il n'est pas nécessaire d'un point de vue logique , mais si le compilateur optimise l'appel Select(), LINQ to SQL n'aura aucune possibilité d'invoquer la requête de la base de données. –

+0

Je ne vais pas utiliser, mais je voulais juste savoir.Merci pour l'expression. – Wondering

+0

@Richard Je ne suis pas sûr de ce que vous dites. Le compilateur n'optimiserait pas le code que vous devez exécuter. –

1

Vous n'avez pas besoin d'une expression lambda. Vous voulez juste tous les membres de la collection.

3

Le compilateur se traduira à quelque chose le long de ces lignes:

db.StudentDatas.Select(s => s) 

La traduction SQL est effectuée par la classe de base Bibliothèque. SQL, bien sûr, ne pas utiliser des expressions lambda ...

+0

qu'est-ce que "db." ? – ShaileshDev

+0

Son nom de variable commun pour DbContext https://msdn.microsoft.com/fr-fr/library/system.data.entity.dbcontext(v=vs.113).aspx –

0

Bien que les deux soient techniquement corrects, car ils donneraient tous deux le même résultat dans sa forme simpliste, c'est seulement parce que le comportement par défaut de db.table est "Select". Dans les coulisses, ils sont différents. Alors que l'un est System.Data.Linq.Table, l'autre est System.Linq.IQuerable. Par exemple

var x = db.table ; var y= db.table(s=>s); 
X = y; 

se traduirait par une erreur du compilateur. Lorsque vous utilisez la bibliothèque Dynamic Linq, lorsque vous devez créer des requêtes dynamiques au moment de l'exécution, vous devez utiliser un IQuerable comme sélection initiale. Ce qui signifie que var qry = db.table(s=>s); par opposition à var qry = db.table; Ensuite, vous pouvez aller et chaîner vos questions comme: qry = qry.Where(bla bla bla);

Je l'ai trouvé à la dure après quelques séances angoissante.

-2

code:

var allmember = eg_.table.where(x=>x).ToList(); 
Questions connexes