Mysql
 sql >> Datenbank >  >> RDS >> Mysql

ServiceStack.OrmLite:Wo ist die Methode, um benutzerdefiniertes SQL zu schreiben und das Ergebnis zurückzusetzen?

Ja, mir ist kürzlich aufgefallen, dass db.SqlList ging im OrmLite v4-Refactor verloren also habe ich es in diesem Commit wiederhergestellt . Welches in der nächsten Version von v4 vor Ende des Monats verfügbar sein wird.

Sie können immer noch db.Select verwenden für rohe SELECT-Abfragen, z. B.:

var results = db.Select<Poco>("SELECT * FROM a LIMIT 10");

Es ist nur ein Problem, wenn es kein SELECT ist -Anweisung, da wir davon ausgehen, dass es sich um eine Kurzschrift handelt wie:

var results = db.Select<Poco>("Foo = 'bar'");

Und den Rest des SQL automatisch für Sie hinzufügen, aber das ist ein Problem, wenn Sie kein SELECT ausgeben Aussage, z. Aufrufen einer gespeicherten Prozedur, was db.SqlList ist weil das rohe SQL unangetastet bleibt.

Unterstützung für LIMIT in Typed Expression API

Eine andere Möglichkeit, mit einem Limit abzufragen, ist die Verwendung der API für typisierte Ausdrücke, z. B.:

var results = db.Select<Poco>(q => q.Limit(10));