Ist es möglich, eine Auflistung (Dictionary) aus einem Entity-Objekt zu holen? Ich brauche das, um Teile der Eigenschaften des Objekts an eine Funktion zu übergeben, die ein IDictionary benötigt.Entity Framework - Objekt als Sammlung abrufen
Antwort
Verwendung:
Context.EntitySetName.AsEnumerable().ToDictionary(o => o.Key, o => o.Value);
Einige Detail dazu:
ToDictionary nicht in LINQ to Entities unterstützt. Dies bedeutet, dass die LINQ-Abfragezeichenfolge, die ToDictionary enthält, kompiliert wird, aber nicht ausgeführt wird, da das Entity Framework nicht weiß, wie sie in SQL übersetzt werden soll. Daher müssen Sie zuerst die Abfrage auf dem Datenbankserver ausführen. Sie müssen Ihr Set also zuerst in eine Liste projizieren, die den Entitätssatz auflistet. AsEnumerable wird das tun. Wenn der Entitätssatz groß ist, möchten Sie das wahrscheinlich nicht mit der ganzen Sache machen. Verwenden Sie einen Where-Aufruf oder eine LINQ-Abfrage, um die Ergebnismenge nur auf die gewünschten Elemente im Wörterbuch zu reduzieren.
Ich denke nicht, dass ich Ihre Frage vollständig verstehe. Ich kenne keine Möglichkeit, Ihre Datenbanktabellen an IDictionary-Eigenschaften zu binden, wenn Sie darauf verweisen, aber Sie sollten in der Lage sein, alle Eigenschaften oder Methoden zu erstellen, die Sie zum Erstellen eines Wörterbuchs benötigen. Ist das Schreiben einer Business-Objekt-Methode aus irgendeinem Grund keine Option?
Beispiel: Das Objekt hat die Eigenschaften a, b, c, x, y, z. Und ich brauche die Eigenschaften x, y, z in einem Dictionary als Schlüssel und die Werte von x, y, z als Werte. –