Laden...

[erledigt] Dapper return Last Insert Rowid mit QueryAsync

Erstellt von Rioma vor 9 Jahren Letzter Beitrag vor 9 Jahren 1.374 Views
R
Rioma Themenstarter:in
228 Beiträge seit 2013
vor 9 Jahren
[erledigt] Dapper return Last Insert Rowid mit QueryAsync

Hallo zusammen,

ich arbeiten in meinem kleinen "Projekt" mit dem orm Dapper.
Mein Problem ist jetzt, dass ich nach einem Insert die ID zurück haben möchte. Das ganze funktioniert auch ohne Probleme mit:

Query<int>(sql usw.).first();

Ich möchte aber natürlich nicht, dass die Gui blockiert falls der Zugriff länger braucht und wollte dann auf QueryAsync zurückgreifen. Da QueryAsync kein first() hat, wollte ich einach ein first() auf die IEnumerable<int> beim return aufrufen, bekomme vorher aber eine InvaliCastException von Dapper. Möglicherweise, weil ich nur ein Feld im Sql zurück bekomme? Ist übrigens auf Integer per SQLite gecastet.

Meine frage ist eigentlich, wie würdet ihr das ganze realisieren im Sinne von Best Practice?

Ich hatte vorher die beiden Sql Befehle getrennt voneinander an die Datenbank geschickt:

Insert per ExecuteAsync und die ID habe ich mir dann per ExecuteScalarAsync<int> geholt.

Scheint mir aber nicht der schönste weg zu sein. Der obige nicht Async Code funktioniert, aber ein Task.Run drum herum scheint mir noch schlimmer zu sein....

Vielleicht könnte mir jemand von euch weiterhelfen.

Danke euch.

R
Rioma Themenstarter:in
228 Beiträge seit 2013
vor 9 Jahren

Ich stand echt auf dem schlauch..... anstatt insert und select einfach per ExecuteScalarAsync<int>
auszuführen.

Danke