I'm trying to make a webapi in ASP.NET MVC 4. The webapi used Entity Framework 5 Spatial types and i have wrote a very simple code.
public List<Area> GetAllAreas() { List<Area> aList = db.Areas.ToList(); return aList; }
Area contains DbGeometry.
When i run this local it works, but when i publish it to azure it gives me this error:
Spatial types and functions are not available for this provider because the assembly 'Microsoft.SqlServer.Types' version 10 or higher could not be found.
Anyone know how to resolve this ? :)
Thanks!
I found the solution ! Just install the nuget package Microsoft.SqlServer.Types
PM> Install-Package Microsoft.SqlServer.Types
Link for more info
The answer above works fine when version 11 (SQL Server 2012) of the assembly can be used.
I had a problem with this as my solution has other dependencies on version 13 (SQL Server 2016) of the same assembly. In this case note that Entity Framework (at least v6.1.3) is hardcoded in its SqlTypesAssemblyLoader (the source of this exception) to only look for versions 10 and 11 of the assembly.
To work around this I discovered you can tell Entity Framework which assembly you want to use like this:
SqlProviderServices.SqlServerTypesAssemblyName = typeof(SqlGeography).Assembly.FullName;
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With