Der folgende Code generiert den folgenden Fehler:
Parameter '@ID' muss definiert sein.
Mache ich etwas falsch oder ist es nicht möglich, Variablen in der SQL-Abfrage mit MySQL zu verwenden, die keine Dapper-Parameter sind?
In diesem Beispiel ist @Slug ein Dapper-Parameter, aber @ID nicht. Ich benutze MySQL, also muss ich @ID nicht definieren - es wird in der ersten Verwendung definiert.
%Vor%Es stellt sich heraus, dass "MySql Connector / Net" den Fehler erzeugt.
Um Nichtparameter-SQL-Variablen mit MySql Connector / Net zu verwenden, müssen Sie Ihrer Verbindungszeichenfolge die folgende Option hinzufügen:
Siehe: Ссылка
Ich halte das nicht für ein nettes Problem. dapper nimmt nur die SQL, die Sie anbieten, und fügt alle Mitglieder aus dem "args" -Objekt hinzu, das offensichtlich in der SQL sieht.
Der Weg, dies zu untersuchen, besteht darin, das gleiche mit DbCommand direkt auszuführen - ich schätze, dass es nicht identisch sein wird. Es wird einen SQL-Trick geben, damit es funktioniert, aber das ist zwischen Ihnen und MySQL. Alles, was Dapper macht, ist:
es berührt "ID" nicht, und es ist richtig, dass es nicht tut.
Sie müssen die ID-Variable in Ihrem SQL-Code deklarieren:
%Vor%Tags und Links sql parameters dapper