Wie Sie einen L2S-Provider aufrufen, um ein Prädikat in Form von Func zu übersetzen zu einer SQL-Where-Klausel?

dapper linq-to-sql predicate sql sql-server-2008

Frage

Ich verwende L2S in meiner Anwendung, aber ich wechsele immer mehr zu dapper.net, weil ich große Probleme mit der Abfrageleistung habe und das lästige n + 1 Problem auswählt .

Es funktioniert gut, aber ich vermisse den komfortablen LINQish-Schreibstil Prädikate beim Filtern von Daten.

Meine Frage ist also, wie kann ich ein Prädikat in Form von Func<T, bool> in eine SQL Server where-Klausel übersetzen, um es mit dapper zu verwenden?

Ich denke, jemand muss das schon einmal gemacht haben, oder sind all die netten Benutzer, die ihre SQL-Statements handcodieren?

Wie der Titel schon sagt, ist es vielleicht eine Option, den LINQ2SQL-Provider für SQL Server aufzurufen?

Im Grunde suche ich etwas wie das Inverse von dynamischem linq.

Beliebte Antwort

Es gibt Möglichkeiten, das von LINQ generierte SQL zu sehen. Weitere Informationen finden Sie im Artikel Anzeigen des von LINQ zu Entity Queries generierten SQL aus dem Visual Studio Magazine.

Jetzt, wo ich besser verstehe, was Sie suchen, habe ich ein wenig mehr in diese Sache hineingeschaut und ein paar verwandte Beiträge gefunden, die einen Blick wert sind:

Dynamische where-Klausel in dapper, die die Verwendung eines Stringbuilders vorschlägt, aber einer der Kommentare verweist auf einen Sam Saffron-Artikel, Porting LINQ-2-SQL an Dapper für große Gerechtigkeit , der über einen beigetragenen SqlBuilder spricht, der Ihnen helfen könnte.

Generieren Sie eine SQL-Klausel mit einem Linq-zu-Sql-Ausdruck, der vorschlägt, einen LINQ Where-Aufruf zu verwenden und die WHERE-Klausel aus dem generierten SQL zu entnehmen .



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow