Reputation: 662
in vnext, using Entity Framework 7 (https://github.com/aspnet/EntityFramework) how to use Spatial Data types (e.g. DbGeography
) in model (code-first method) to save points, shapes etc. when creating model for a table.
e.g.
public DbGeography gps_points {get; set;}
I'm unable to use DbGeography
.
Update:
Confirmed, this feature is not yet available in EF7, but may be available in future versions.
to track any changes see:
https://github.com/aspnet/EntityFramework/issues/242
https://github.com/aspnet/EntityFramework/issues/1100
Upvotes: 11
Views: 3498
Reputation: 18954
Support for spatial types was introduced in EF5. However, in EF5 spatial types are only supported when the application targets and runs on .NET 4.5.
Starting with EF6 spatial types are supported for applications targeting both .NET 4 and .NET 4.5.
the Microsoft SQL Server provider depends on some additional low-level libraries that may need to be installed.
Prerequisites for spatial types with Microsoft SQL Server
SQL Server spatial support depends on the low-level, SQL Server-specific types SqlGeography
and SqlGeometry
. These types live in Microsoft.SqlServer.Types.dll
assembly, and this assembly is not shipped as part of EF or as part of the .NET Framework.
When Visual Studio is installed it will often also install a version of SQL Server, and this will include installation of the Microsoft.SqlServer.Types.dll
.
If SQL Server is not installed on the machine where you want to use spatial types, or if spatial types were excluded from the SQL Server installation, then you will need to install them manually. The types are included in the SQL Server Feature Packs, and different assemblies exist for SQL Server 2008 and SQL Server 2012.
Upvotes: 0
Reputation: 169
Referring to your own issue at the github repository of Entity Framework, there seems no implementation, yet. As the milestone was set to "Backlog" it seems that this issue won't be resolved in the near future.
If you do not need to process your data geographically on database-side (e.g., search in a bounding box or intersections), you can save your data as Well-known text. This can be easily converted to a database geometry type, if EF7 supports spatial data in the future.
Be aware of the string length limits of your database, since WKT can get quiet long for complex shapes.
Upvotes: 2
Reputation: 5108
You need to add a reference to System.Data.Entity.Spatial
. I don't think it is now included by default under the EF reference, hence the reason you cannot use DbGeography.
Remember, everything is plug and play!
Upvotes: 0