Qualcuno sa (idealmente, con un riferimento), se la versione VS2010 di LinqToSQL o EntityFramework v4 supporterà le query sui tipi di dati spaziali di SQL 2008?Supporto di tipi di dati spaziali in Linq2Sql o EF4
risposta
In EF 4.0 potresti riuscire a modificare qualcosa usando una combinazione di custom functions e fingere che i tipi spaziali siano in realtà tipi binari. Questo è qualcosa che sto pensando di masticare, provare e aggiungere a my tips series. Ma finora anche l'hack non è stato provato. :(
E per quanto riguarda il sostegno diretto, purtroppo né L2S o EF v4 sosterrà tipi spaziali nei tempi VS2010.
Entity programma quadro Manager.
Ecco una soluzione per ottenere funziona in Entity Framework/LINQ in Entities:
È possibile utilizzare una vista del database per restituire il testo ben noto (utilizzando "geometry.ToString()" nella query) o binario. le righe vengono restituite, basta convertire la stringa/binario in un oggetto SqlGeometry in .NET.
Ecco una query di esempio utilizzato per costruire una vista che converte un campo "Location" del tipo di geometria in una stringa Well-Known-Text:
SELECT ID, Name, Location.ToString() as Location FROM MyTable
Ecco un esempio di interrogazione dei soggetti risultanti che hanno un campo "Location" che contiene un noto-Text o la rappresentazione String dell'oggetto "geografia":
var e = new MyApp.Data.MyDataEntities(connectionString);
var items = from i in e.MyTables
select i;
foreach (var i in items)
{
// "Location" is the geography field
var l = SqlGeography.Parse(i.Location);
var lat = l.Lat;
var lng = l.Long;
}
una cosa aggiuntiva, è avrete bisogno di fare query basate qualsiasi spaziali all'interno di stored procedure, dal momento che non voglio tirare TUTTI i dati dalla tabella in .NET per eseguire la tua query spaziale utilizzando LINQ.
Questo non è un elegent come supporto nativo di SQL Spatial Types, ma vi farà funzionare contemporaneamente con Entity Framework e SQL Spatial.
Eccellente, grazie mille Chris. Darei un'occhiata a questo! –
Questo è stato qualcosa che ho giocato/fatto, con L2S. –
Grazie mille :) –
Si può anche fare sicuramente Linq-to-SQL con tabelle e colonne scritte a mano e ottenere direttamente i tipi spaziali SQL. Ho provato quanto segue su un DB campione (dont' dimenticare di includere il riferimento e 'usando' a System.SqlServer.Types
...
string connectionString = @"Data Source=YADDAYADDA;Initial Catalog=MUMBLEMUMBLE;Integrated Security=True";
var pointsFileDc = new PointsFileDC(connectionString);
var geos = (from point in pointsFileDc.pointsData
select point).Take(10);
foreach (var geo in geos)
{
ObjectDumper.Write(geo);
}
...
public class PointsFileDC : DataContext
{
public Table<GeoPoints> pointsData;
public PointsFileDC(string connection)
: base(connection)
{
}
}
[Table(Name = "Points")]
public class GeoPoints
{
[Column(IsPrimaryKey = true)]
public int PointId;
[Column]
public SqlGeography GeoPoint;
}
- 1. Dati spaziali in PostgreSQL
- 2. Dati spaziali con mongodb o cassandra
- 3. Salvataggio dati spaziali in CakePHP
- 4. Supporto JPA per colonne di tipi di dati XML
- 5. Come utilizzare i tipi di dati spaziali in asp.net vnext con EF 7?
- 6. Gestione dei tipi di dati spaziali Mysql in Laravel Eloquent ORM
- 7. Come rappresentare i dati spaziali in Cassandra
- 8. NHibernate, Entity Framework, record attivi o linq2sql
- 9. Convalidare Linq2Sql prima di SubmitChanges()
- 10. tipi di dati mysql equivalenti
- 11. Struttura dati spaziali per i giochi
- 12. Utilizzo del tipo di dati di data sql e EF4
- 13. due o più tipi di dati in PHPDoc @param
- 14. due o più tipi di dati in dichiarazione prescrittori errore
- 15. MongoDB e utilizzo di DBRef con dati spaziali
- 16. Tipi di dati SQLite
- 17. tipi di dati gerarchici
- 18. Programmazione Tipi di dati
- 19. BigQuery tipi di dati
- 20. Funzioni spaziali GIS in PHP?
- 21. Unisci regioni adiacenti in R (dati spaziali aggregati)?
- 22. Come posso convertire in modo programmatico i tipi di dati SQL in tipi di dati .Net?
- 23. tipi di dati ricorsivi templated
- 24. Classe di query Linq2Sql orientata agli oggetti
- 25. Utilizzo dei tipi di dati in Haskell
- 26. tipi di dati personalizzati in array NumPy
- 27. Implementazioni di indici spaziali in Haskell?
- 28. EF4 e stringa di connessione
- 29. auto-promozione Tipi di dati
- 30. Tipi di dati algebrici in Kotlin
Grazie Alex , sembra una risposta affidabile e definitiva! C'è qualche ragione particolare per cui EF4 non li supporterà (troppo difficile, non abbastanza richiesta, priorità troppo bassa ..?) –
Beh, non ho intenzione di dire una priorità troppo bassa. Lo considero un'alta priorità, ma dirò che non era all'altezza di alcune delle cose che abbiamo finito, come POCO, F Ks, Model First ecc. –
Quando EF avrà il supporto di tipo spaziale ?? VS'2012; solo 4 anni dopo che sono stati aggiunti a SQL Server ?? –