Ich habe eine asp.net Mvc 5 Web-API-Anwendung, wo ich mit Entity Framework eine SqlGeography
Instanz in eine DbGeography
Instanz konvertieren müssen zur Abfrage 6. ich den folgenden Code bin mit, dies zu tun:Unterstützt EF 6 SQL Server 2014-Typen?
SqlGeography geo = SqlGeography.STGeomFromText(chars, Constants.SRID);
DbGeography dbGeo = DbSpatialServices.Default.GeographyFromProviderValue(geo);
der Aufruf von GeographyFromProviderValue
wirft die folgende Ausnahme:
der angegebene Provider-Wert mit dieser räumlichen Dienst Umsetzung nicht kompatibel ist. Es wird ein Wert vom Typ 'Microsoft.SqlServer.Types.SqlGeography, Microsoft.SqlServer.Types, Version = 11.0.0.0, Culture = neutral, PublicKeyToken = 89845dcd8080cc91' benötigt.
Parametername: providerValue
Sicher genug, mein SqlGeography
Beispiel kommt aus dem SQL Server 2014-Typen Baugruppe (Microsoft.SqlServer.Types, Version 12.0.0.0
).
Graben in den Entity Framework-Quellcode zeigt diese Methode die Täter zu sein:
//EntityFramework.SqlServer.dll(6.0.0.0) System.Data.Entity.SqlServer.SqlTypesAssemblyLoader
public SqlTypesAssemblyLoader(IEnumerable<string> assemblyNames = null)
{
this._preferredSqlTypesAssemblies = (assemblyNames ?? ((IEnumerable<string>)new string[]
{
"Microsoft.SqlServer.Types, Version=11.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91",
"Microsoft.SqlServer.Types, Version=10.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91"
}));
this._latestVersion = new Lazy<SqlTypesAssembly>(new Func<SqlTypesAssembly>(this.BindToLatest), true);
}
}
Wie Sie sehen können, ist die Art Baugruppe für SQL Server 2014 nicht enthalten. Bedeutet das, dass Entity Framework 6 keine Typen von SQL Server 2014 unterstützt?
Offensichtlich konnte ich die Typen Assembly für SQL Server 2012 finden und stattdessen verwenden, aber ich würde es lieber nicht müssen. Gibt es anders herum dieses Problem?
Arbeitete großartig. Vielen Dank! – Mansfield