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
Disabilitare automaticamente un workflow di GitHub (parte 2)
Testare l'invio dei messaggi con Event Hubs Data Explorer
Utilizzare Azure AI Studio per testare i modelli AI
Gestire liste di tipi semplici con Entity Framework Core
Usare lo spread operator con i collection initializer in C#
Modificare i metadati nell'head dell'HTML di una Blazor Web App
Utilizzare i primary constructor in C#
Creazione di plugin per Tailwind CSS: espandere le Funzionalità del Framework
Installare le Web App site extension tramite una pipeline di Azure DevOps
Eseguire script pre e post esecuzione di un workflow di GitHub
Sostituire la GitHub Action di login su private registry
Creare alias per tipi generici e tuple in C#