Ist es möglich, .QueryMultiple
(oder eine andere Methode) in Dapper zu verwenden und die Ergebnisse jeder früheren Abfrage in der where-Klausel der nächsten Abfrage zu verwenden, ohne jede Abfrage einzeln durchführen zu müssen, die ID abrufen und dann .Query
wieder, erhalten Sie die ID und so weiter.
Beispielsweise,
string sqlString = @"select tableA_id from tableA where tableA_lastname = @lastname;
select tableB_id from tableB WHERE tableB_id = tableA_id";
db.QueryMultiple.(sqlString, new {lastname = "smith"});
Ist sowas mit Dapper möglich oder brauche ich eine View oder Stored Procedure um dies zu erreichen? Ich kann mehrere Joins für eine SQL-Anweisung verwenden, aber in meiner echten Abfrage gibt es 7 Joins, und ich dachte nicht, dass ich 7 Objekte zurückgeben sollte.
Im Moment benutze ich nur ein object
.
Sie können jede vorherige Abfrage im Tabellenparameter speichern und dann zuerst die Auswahl aus dem Parameter durchführen und danach suchen, zum Beispiel:
DECLARE @TableA AS Table(
tableA_id INT
-- ... all other columns you need..
)
INSERT @TableA
SELECT tableA_id
FROM tableA
WHERE tableA_lastname = @lastname
SELECT *
FROM @TableA
SELECT tableB_id
FROM tableB
JOIN tableA ON tableB_id = tableA_id