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
Eseguire le GitHub Actions offline
Creare una custom property in GitHub
Utilizzare le collection expression in C#
Utilizzare un numero per gestire la concorrenza ottimistica con SQL Server ed Entity Framework
Utilizzare Tailwind CSS all'interno di React: primi componenti
Gestire il colore CSS con HWB
Garantire la provenienza e l'integrità degli artefatti prodotti su GitHub
Ordinare randomicamente una lista in C#
Gestire errori funzionali tramite exception in ASP.NET Core Web API
Gestione dei nomi con le regole @layer in CSS
Creare gruppi di client per Event Grid MQTT
Gestire i null nelle reactive form tipizzate di Angular