Mapping SqlGeography mit Dapper

8

Ich habe eine Entity "Point", die Id-, Text- und Geografiekoordinaten enthält.

%Vor%

Dies ist ts SQL-Code der Tabelle und gespeicherte Prozedur des Einfügens. Ich habe Klasse für die Verwendung von dapper:

%Vor%

c # -Klasse ist:

%Vor%

Und Repository hat Methode

%Vor%

Wenn ich ein solches System für eine andere Klasse benutze, ist alles ok, aber es gibt ein Problem mit dem Mapping, ich glaube es liegt am SqlGeography-Typ. Verwenden:

%Vor%

Und ich habe eine Ausnahme The member coords of type Microsoft.SqlServer.Types.SqlGeography cannot be used as a parameter value

Gibt es ein Geheimnis, diesen Typ zuzuordnen?

    
lenden 23.08.2012, 11:28
quelle

3 Antworten

9

Dapper 1.32 jetzt enthält direkte Unterstützung dafür . Dein Code sollte nun einfach funktionieren .

    
Marc Gravell 28.08.2014, 08:31
quelle
1

Dapper unterstützt keine DB-Provider-spezifischen Datentypen. In Ihrem Fall seine GEOGRAPHIE.

  

Dapper hat keine DB-spezifischen Implementierungsdetails, es funktioniert über alle   .net Ado-Anbieter einschließlich SQLite, SQL, Firebird, Oracle, MySQL   und SQL Server

Um diesen Parameter mit Dapper zu behandeln, müßten Sie Ihre eigene Handhabung dafür schreiben. Ein Beispiel finden Sie in dieser Antwort .

Viel Glück

    
Void Ray 23.08.2012 16:55
quelle
1

Ich stieß auf ein ähnliches Problem. Ich fand, dass Dapper resultierende Felder zu Microsoft.SqlServer.Types.SqlGeography gut abbildet, aber die Verwendung als Parameter funktionierte nicht.

Ich habe die Datei SqlMapper.cs so modifiziert, dass sie Unterstützung für diesen Typ enthält. Sie können den Geist hier sehen: Ссылка

Klicken Sie auf "Revisionen", um zu sehen, was ich geändert habe.

    
Brendan 15.02.2013 16:27
quelle