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
Evitare il flickering dei componenti nel prerender di Blazor 8
Verificare la provenienza di un commit tramite le GitHub Actions
Creare form tipizzati con Angular
Eseguire un metodo asincrono dopo il set di una proprietà in Blazor 8
Eseguire i worklow di GitHub su runner potenziati
C# 12: Cosa c'è di nuovo e interessante
Utilizzare il nuovo modello GPT-4o con Azure OpenAI
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Miglioramenti agli screen reader e al contrasto in Angular
Creare un'applicazione React e configurare Tailwind CSS
Gestione degli stili CSS con le regole @layer
Sfruttare lo stream rendering per le pagine statiche di Blazor 8