2014-11-19 12 views
11

in vn., utilizzando Entity Framework 7 (https://github.com/aspnet/EntityFramework) come utilizzare i tipi di dati spaziali (ad esempio DbGeography) nel modello (metodo code-first) per salvare punti, forme ecc. Durante la creazione del modello per una tabella.Come utilizzare i tipi di dati spaziali in asp.net vnext con EF 7?

ad es.

public DbGeography gps_points {get; set;} 

Non riesco a utilizzare DbGeography.


Aggiornamento:

Confermato, questa funzione non è ancora disponibile in EF7, ma può essere disponibile nelle versioni future.

per tenere traccia delle eventuali variazioni vedere:

https://github.com/aspnet/EntityFramework/issues/242

https://github.com/aspnet/EntityFramework/issues/1100

+0

Domanda molto ampia. Hai già provato qualcosa? Hai problemi a far funzionare questo? – AndersNS

+0

Non riesco a utilizzare DbGeography per una colonna nella creazione del modello per la tabella utilizzando il primo metodo del codice nel framework di entità. funziona per asp.net 4 e ef 6, questa funzione è supportata in ef alpha 7 o beta? –

+0

Possibile duplicato di [Entity Framework Core: Type Udt non è supportato su questa piattaforma. (Dati spaziali - Geografia)] (https://stackoverflow.com/questions/44873740/entity-framework-core-type-udt-is-not-supported-on-this-platform-spatial-data) – Eli

risposta

0

è necessario aggiungere un riferimento a System.Data.Entity.Spatial. Non penso che sia ora incluso di default sotto il riferimento EF, quindi il motivo per cui non è possibile utilizzare DbGeography.

Ricorda, tutto è plug and play!

+2

Grazie per l'aiuto, ma non ho trovato alcun pacchetto di nuget per questo. come in vnext possiamo solo aggiungere pacchetti nuget e non dll direttamente come riferimento o dipendenza. –

2

Facendo riferimento a your own issue nel repository github di Entity Framework, non sembra ancora esserci alcuna implementazione. Poiché il traguardo era impostato su "Backlog", sembra che questo problema non verrà risolto nel prossimo futuro.

Se non è necessario elaborare i dati geograficamente sul lato del database (ad esempio, cercare in un rettangolo di selezione o in intersezioni), è possibile salvare i dati come Well-known text. Questo può essere facilmente convertito in un tipo di geometria del database, se EF7 supporta i dati spaziali in futuro.

Prestare attenzione ai limiti di lunghezza della stringa del database, poiché WKT può tranquillizzarsi a lungo per forme complesse.

+0

grazie per il commento. spero che nelle prossime versioni questa funzionalità verrà implementata presto. –

+0

Anche il nostro team lo spera. – ischas

+1

Puoi mostrare un estratto del codice su come usare il testo noto? – Andrii

0

Il supporto per i tipi spaziali è stato introdotto in EF5. Tuttavia, in EF5 i tipi spaziali sono supportati solo quando l'applicazione si rivolge e gira su .NET 4.5.

A partire da EF6 sono supportati i tipi spaziali per le applicazioni che hanno come target sia .NET 4 che .NET 4.5.

il provider Microsoft SQL Server dipende da alcune librerie di basso livello aggiuntive che potrebbero dover essere installate.

Prerequisiti per i tipi spaziali con Microsoft SQL Server

supporto spaziale di SQL Server dipende dal basso livello, tipi SQL Server-specific SqlGeography e SqlGeometry. Questi tipi vivono nell'assemblaggio Microsoft.SqlServer.Types.dll e questo assembly non viene fornito come parte di EF o come parte di .NET Framework.

Quando Visual Studio è installato, spesso installerà anche una versione di SQL Server e questo includerà l'installazione di Microsoft.SqlServer.Types.dll.

Se SQL Server non è installato sulla macchina in cui si desidera utilizzare tipi spaziali o se i tipi spaziali sono stati esclusi dall'installazione di SQL Server, sarà necessario installarli manualmente. I tipi sono inclusi nei Feature Pack di SQL Server e diversi assembly esistono per SQL Server 2008 e SQL Server 2012.

Problemi correlati