Heim >Backend-Entwicklung >C++ >Können LINQ-Abfragen dynamisch aus XML-Daten ohne Neukompilierung generiert werden?
Dynamisches Generieren von LINQ-Abfragen ohne Neukompilierung
In Szenarien, in denen Abfrageparameter aus dynamisch aktualisierten externen Daten stammen, besteht die Notwendigkeit, LINQ-Abfragen zu generieren ohne den Quellcode neu zu kompilieren. Stellen Sie sich ein Objekt wie SomeObject mit zahlreichen Eigenschaften vor.
Ist es möglich, neue LINQ-Abfragen dynamisch zu erstellen, indem Kriterien aus einer in einer Datenbank gespeicherten XML-Struktur extrahiert werden?
Zum Beispiel:
var result = from i in someObj where //XML requests Name = 'Bob'...so append this where clause name = 'Bob'
Lösungsverwendung Ausdrucksbäume
Der Einsatz von Ausdrucksbäumen bietet eine praktikable Möglichkeit Lösung:
var param = Expression.Parameter(typeof(SomeObject), "p"); var exp = Expression.Lambda<Func<SomeObject, bool>>( Expression.Equal( Expression.Property(param, "Name"), Expression.Constant("Bob") ), param ); var query = someObj.Where(exp);
Obwohl dieser Ansatz wesentlich komplexer ist, bietet er eine Lösung in bestimmten Szenarien, in denen eine dynamische Abfragegenerierung erforderlich ist.
Das obige ist der detaillierte Inhalt vonKönnen LINQ-Abfragen dynamisch aus XML-Daten ohne Neukompilierung generiert werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!