Dapper & MS Access - Lesen funktioniert, Schreiben nicht

8

Fangen wir damit an, das aus dem Weg zu räumen: Ich stecke mit einer MS Access DB fest und kann sie nicht ändern.

Das funktioniert gut:

%Vor%

Das funktioniert gut:

%Vor%

Dies geschieht nicht ... es wird ohne Fehler ausgeführt, aber es setzt den Vornamen als "SomeCity" in der DB und die Stadt als "John":

%Vor%

Irgendwelche Ideen?

BEARBEITEN SIE UNTEN

Dapper funktioniert, wenn ich DynamicParameters verwende:

%Vor%     
Trev 07.09.2012, 16:28
quelle

2 Antworten

8

Nach einigem Graben konnte ich eine Ursache finden:

Unten ist der CreateParamInfoGenerator-Delegat von dapper's SqlMapper:

%Vor%

Die Requisiten sind Ihr einhelliger Parameter, der von OrderBy (p = & gt; p.Name) neu geordnet wird, was die Stadt im Voraus bewegt.

%Vor%

Props wird dann zu den IDbCommand-Parametern hinzugefügt, wobei die Reihenfolge wichtig ist.

Wenn ich die OrderBy () -Klausel auskommentiere, funktioniert alles.

Ich habe auch DynamicParameters getestet und die Attribute für das Verschieben von Stadt absichtlich neu geordnet:

%Vor%

Das obige hat nicht so gut funktioniert, deshalb ist die Reihenfolge der Attribute der Grund!

Ich denke, Sie können Ihre lokale Kopie von SqlMapper vorerst ändern und OrderBy () entfernen und auf ein offizielles Urteil von Marc warten ...

Hoffe, das hilft.

    
Void Ray 08.09.2012, 01:08
quelle
4

Ich hatte ein ähnliches Problem, was ich getan habe, war use parameter names like @param1, @param2 anstelle von @ name, @ id, @ price, damit die Reihenfolge gleich bleibt, ohne die Datei SQLMapper.cs ändern zu müssen.

Etwas wie

%Vor%     
Zo Has 29.01.2014 07:03
quelle

Tags und Links