Frage

Ich habe eine Klasse definiert als:

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

Basierend auf der Diskussion, die ich hier gefunden habe: http://groups.google.com/group/ravendb/browse_thread/thread/88ea52620021ed6c?pli=1

Ich kann eine Instanz ganz einfach aufbewahren, da:

//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();
}

Wenn ich es jedoch wie unten abfrage:

//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();                
}           

Ich erhalte den Fehler "'system.linq.expressions.instancemethodcallexpressionn' zu 'system.linq.expressions.memberexpression'." wie gezeigt:

enter image description hereWie kann ich basierend auf einem Schlüssel im Wörterbuch abfragen?

War es hilfreich?

Lösung

Dies ist ein Fehler, er ist jetzt behoben. Wird im nächsten Build in ungefähr zwei Stunden draußen sein

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top