2011-04-06 7 views
9

Im usando RavenDB (en el modo de servidor que ejecuta @localhost: 3000), y ASP.NET MVC3RavenDB: una simple consulta <T>() .ToList() devuelve 0 resultados

que tienen este segmento de código que dejó de funcionar a partir compilación 289. Funcionó un par de veces antes, no estoy seguro de si fue la actualización a 322 o algo que hice.

Session.Query<Post>().ToList().ForEach(Session.Delete); 

Fue eliminando todos los mensajes cuando probé hace un tiempo, (sólo tengo alrededor de 50 puestos impares en mis datos de la muestra, y 500 más por venir en) y únicos cambios que podemos ver es que estos dos se producen en Tiempo de ejecución

A first chance exception of type 'System.Net.WebException' occurred in System.dll 
A first chance exception of type 'System.Net.WebException' occurred in Raven.Client.Lightweight.dll 

Y este registro aparece en la ventana de resultados de visual Studio cuando el segmento de código (Session.delete) anterior se ejecuta realmente

Executing query '' on index 'dynamic/Posts' in 'http://localhost:3000' 
Query returned 0/0 results 

Y en los registros de cuervo, (un archivo de texto) hay nada adverso

Request # 7: GET  - 46 ms - ZaszStore - 200 - /indexes/dynamic/Posts?query=&start=0&pageSize=128&aggregation=None 

Esta consulta se ejecuta muy bien:

Session.Load<Post>("MyPostId") 

y obtiene el mensaje correcto Instancia.

¿Por qué es simple Session.Query(). ToList() devuelve 0 resultados todo el tiempo? Y Session.Query(). Count() devuelve 0 siempre. ¿Qué podría causar este comportamiento, teniendo en cuenta que la SilverLight-UI (SL-UI) de Raven DB muestra claramente que hay 50 publicaciones impares en la base de datos?

El "Raven-Entity-Name" está correctamente lleno.

+1

¿Puedes intentar crear un índice explícito y consultar en contra de eso? –

+1

¡Acabo de intentar, la búsqueda contra el índice funciona! Pero no quiero seguir creando todo tipo de índices, solo para obtener todos los documentos de una entidad particular en mi base de datos. – Zasz

+0

En la pestaña de estadísticas, ¿hay algún error de indexación? También intente eliminar el índice dinámico y permitir que comience nuevamente desde cero. –

Respuesta

1

Para este tipo de consulta se pueden obtener todos los documentos de este modo:

documentStore.DatabaseCommands.StartsWith("post", <page>, <size>) 

Eso debería ser más fácil y más eficiente que la emisión de una consulta para devolver todos los documentos, ya que tira de ellos directamente desde el almacén de datos, eludiendo los índices de Lucene.

Sin embargo, solo funciona cuando desea obtener todos los documentos que tienen el prefijo guardado como su Id.

+1

Puedo buscar todos los documentos en la base de datos como dice, o puedo buscarlos usando la función LuceneQuery o puedo usar la interfaz HTTP y crea una solicitud web nuevamente con una consulta lucene para obtenerla. Pero me pregunto por qué en el mundo el proveedor de Linq no está funcionando :(Es lo más destacado de Raven DB – Zasz

Cuestiones relacionadas