2010-12-15 16 views
40

Es tarde, así que esto debe ser algo estúpido. Tengo LinqPad conectado a mi base de datos y parece que no puedo obtener resultados para las consultas más simples.LinqPad no devuelve resultados con declaraciones C#

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

Cuando ejecuto eso, LinqPad dice que se ejecutó correctamente (modo C# Statement). Nada se retured

puedo escribir la siguiente Lambda (modo C# expresión) muy simple:

AppInstances.Select (p => p.AppId) 

y que funciona. ¿Por qué? Preferiría usar la funcionalidad de creación de consultas no lambda. Estoy seguro de que esto es algo muy tonto.

Respuesta

62

Me esperaba que en el modo de declaración, tendría que hacer algo como llamar al q.Dump(); para ver los resultados.

Pero si solo quiere usar expresiones de consulta, ¿por qué no hacer eso desde el modo de expresión? Sólo tiene que utilizar una expresión de:

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

O para que sea equivalente a su lambda originales:

from app in AppInstances 
select app.AppId 
+10

no sabría usted siempre me olvido de tomar un vertedero? q.Dump() hizo el truco en modo declaración. Gracias John. Acabo de escuchar su podcast DNR, y estoy haciendo mi camino a través de su libro de programación funcional. Eres un valor real para la comunidad de programación. –

Cuestiones relacionadas