2010-12-15 28 views
40

Il est tard, donc cela doit être quelque chose de stupide. J'ai LinqPad connecté à ma base de données et n'arrive pas à obtenir des résultats pour la plus simple des requêtes. Quand j'exécute cela, LinqPad dit qu'il s'est exécuté avec succès (mode C# Statement). Rien n'est rétabli.LinqPad ne retourne pas les résultats avec les instructions C#

Je peux écrire ce qui suit très simple Lambda (C# en mode d'expression):

AppInstances.Select (p => p.AppId) 

Et cela fonctionne. Pourquoi? Je préférerais utiliser la fonctionnalité de construction de requête non-lambda. Je suis sûr que c'est quelque chose de tout à fait idiot.

Répondre

62

Je m'attendrais à ce qu'en mode de déclaration, vous fassiez quelque chose comme appeler q.Dump(); pour voir les résultats.

Mais si vous voulez juste utiliser des expressions de requête, pourquoi ne pas le faire en mode expression? Il suffit d'utiliser une expression de:

from app in AppInstances 
select new { 
    AppId = app.AppId 
}; 

Ou pour le rendre équivalent à votre lambda d'origine:

from app in AppInstances 
select app.AppId 
+10

Sauriez-vous pas que j'oublie toujours de prendre une décharge? q.Dump() a fait l'affaire en mode déclaration. Merci John. Vous venez d'écouter votre podcast DNR et je parcours mon livre de programmation fonctionnelle. Vous êtes une vraie valeur pour la communauté de programmation. –