2011-04-27 14 views
6

tengo una clase definida como:Consultar un diccionario con RavenDb

public class Student 
{ 
    public string Id { get; set; } 
    public IDictionary<string, string> Attributes { get; set; } 
} 

basado en la discusión que encontré aquí: http://groups.google.com/group/ravendb/browse_thread/thread/88ea52620021ed6c?pli=1

puedo almacenar una instancia con bastante facilidad como:

//creation 
using (var session = store.OpenSession()) 
{    
    //now the student: 
    var student = new Student(); 
    student.Attributes = new Dictionary<string, string>(); 

    student.Attributes["NIC"] = "studentsNICnumberGoesHere";    
    session.Store(student); 
    session.SaveChanges(); 
} 

Sin embargo cuando lo consulto de la siguiente manera:

//Testing query on attribute 
using (var session = store.OpenSession()) 
{ 
    var result = from student in session.Query<Student>() 
       where 
        student.Attributes["NIC"] == "studentsNICnumberGoesHere" 
        select student; 

    var test = result.ToList();     
}   

Aparece el error "'System.Linq.Expressions.InstanceMethodCallExpressionN' para escribir 'System.Linq.Expressions.MemberExpression'." como se muestra:

enter image description here ¿Cómo puedo hacer una consulta basada en una clave del diccionario?

+0

Acabo de verificar que funciona bien en la versión inestable 350: http://builds.hibernatingrhinos.com/builds/ravendb-unstable – basarat

Respuesta

12

Esto es un error, se soluciona ahora. Saldrá en la siguiente compilación, en aproximadamente dos horas

+3

Siempre es un honor leer todo lo que escribir – basarat