La versione 2.2 di Entity Framework Core introduce il supporto nativo ai tipi spatial. Questo supporto è offerto utilizzando i tipi della libreria NetTopologySuite e dei provider di Entity Framework che mappano i tipi verso i diversi tipi esposti dai database. Su NuGet sono già presenti provider Sql Server, SQLite e PostgreSql, ma ne arriveranno anche per altri database.
Il primo passo per utilizzare i tipi spatial è creare una entity che contiene una proprietà il cui tipo è un tipo spatial così come nel prossimo esempio.
using NetTopologySuite.Geometries; namespace Application1 { public class Person { public string Id { get; set; } public Point Location { get; set; } } }
Il tipo Point non è del .NET Framework ma di NetTopologySuite. Una volta creata l'entity possiamo inserire oggetti nel database come facciamo per qualunque altro oggetto.
using (var context = new MyDbContext()) { var p = new Person { Location = new Point(-113.32456, 50.13234) { SRID = 4326 } } context.Add(p); context.SaveChanges(); }
Possiamo poi utilizzare LINQ per eseguire query.
var people = context.People.OrderByDescending(p => p.Location.Distance(someLocation)).ToList();
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Proteggere le risorse Azure con private link e private endpoints
Usare il colore CSS per migliorare lo stile della pagina
Rendere le variabili read-only in una pipeline di Azure DevOps
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Utilizzare i variable font nel CSS
Utilizzare gRPC su App Service di Azure
Ottimizzazione dei block template in Angular 17
Creare una libreria CSS universale: Clip-path
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Gestire i dati con Azure Cosmos DB Data Explorer
Supporto ai tipi DateOnly e TimeOnly in Entity Framework Core
Aggiornare a .NET 9 su Azure App Service