Verwenden Sie die Reflektion, um dynamische LINQ-Anweisungen in C # zu erstellen.

7

Wenn ich eine LINQ-Anweisung wie

habe %Vor%

Wie kann ich "id" und "name" durch übergebene Variablen mittels Reflektion ersetzen? Ich bekomme immer Objektreferenz nicht auf Instanz eines Objekts Fehler gesetzt, wenn ich es versuche. Meine Versuche sind Dinge wie

%Vor%

Jede Hilfe wäre großartig. Danke.

    
erosebe 22.05.2014, 18:50
quelle

2 Antworten

18

Sie sollten Expression Trees anstelle von Reflektion verwenden. Es wird besser funktionieren, und Sie können es mit LINQ to Objects und LINQ to SQL / Entities verwenden.

%Vor%

Dann können Sie Name -Eigenschaft mit Reflektion erhalten (Sie werden es nur einmal tun, also ist es in Ordnung, dies mit Reflektion zu tun.

%Vor%

Test class ist definiert als

%Vor%     
MarcinJuraszek 22.05.2014, 19:00
quelle
1

Sie können Reflektion nicht verwenden, aber Sie können dynamisches Linq wie beschrieben verwenden hier . Wenn Sie Entity Framework dafür verwenden, sollten Sie auch Entity SQL verwenden können, was im Grunde eine fest codierte SQL-Zeichenfolge ist.

    
Brian Mains 22.05.2014 18:53
quelle

Tags und Links