Kann SqlGeography mit Dapper nicht lesen

dapper sqlgeography

Frage

Ich habe viele SO-Fragen befolgt und ich bekomme simillar Fehler, aber ich kann dieses Problem nicht beheben.

Meine Dapper-Version ist 1.50.1 Meine Microsoft.SqlServer.Types-Version ist 11.0.2

Ich habe eine verbindliche Umleitung in der Konfigurationsdatei wie folgt hinzugefügt:

<runtime>
    <dependentAssembly>
      <assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
      <bindingRedirect oldVersion="10.0.0.0" newVersion="11.0.0.0" />
    </dependentAssembly>
</runtime>

Der Fehler, den ich bekomme, ist:

Fehler beim Analysieren der Spalte 2 (Position = POINT (-122.349 47.651) - Objekt)

Während die innere Ausnahme ist:

[A] Microsoft.SqlServer.Types.SqlGeography kann nicht in [B] Microsoft.SqlServer.Types.SqlGeography umgewandelt werden. Typ A stammt von 'Microsoft.SqlServer.Types, Version = 10.0.0.0, Culture = Neutral, PublicKeyToken = 89845dcd8080cccc' im Kontext 'Standard' am Speicherort 'C: \ WINDOWS \ Assembly \ GAC_MSIL \ Microsoft.SqlServer.Types \ 10.0 .0.0__89845dcd8080cc91 \ Microsoft.SqlServer.Types.dll '. Typ B stammt von 'Microsoft.SqlServer.Types, Version = 11.0.0.0, Culture = Neutral, PublicKeyToken = 89845dcd8080cc91' im Kontext 'Standard' am Speicherort 'C: \ WINDOWS \ Assembly \ GAC_MSIL \ Microsoft.SqlServer.Types \ 11.0 .0.0__89845dcd8080cc91 \ Microsoft.SqlServer.Types.dll '.

Wenn ich nur ein dynamisches Objekt lese, ist alles in Ordnung, aber wenn ich meinen eigenen Typ lese, der SqlGeography hat, bekomme ich diesen Fehler.

Ich dachte, ich hätte alles wie empfohlen, aber es scheint, dass ich etwas verpasst habe.

Beliebte Antwort

@Marc Gravell hat einen guten Job gemacht, siehe Referenz unten und es wird dein Leben retten.

SQLGeographie

Problem

Für ASP.NET-Anwendungen fügen Sie der Application_Start-Methode in Global.asax.cs die folgende Codezeile hinzu:

SqlServerTypes.Utilities.LoadNativeAssemblies(Server.MapPath("~/bin"));

Fügen Sie für Desktopanwendungen die folgende Codezeile hinzu, die ausgeführt werden soll, bevor räumliche Operationen ausgeführt werden:

SqlServerTypes.Utilities.LoadNativeAssemblies(AppDomain.CurrentDomain.BaseDirectory);

Die .LoadNativeAssemblies Methode .LoadNativeAssemblies die richtige Assembly für Sie .LoadNativeAssemblies auf der CPU-Architektur ab.

Im bin Ordner sollten Sie dies haben.

Bildbeschreibung hier eingeben



Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow
Lizenziert unter: CC-BY-SA with attribution
Nicht verbunden mit Stack Overflow