2 回答
TA贡献1831条经验 获得超4个赞
Entity Framework Core 2.2 版引入了空间数据支持。它采用NetTopologySuite数据类型,并将它们映射到geography或geometrySQL Server的类型。您可以通过 NuGet 安装 NetTopologySuite:
Install-Package NetTopologySuite
您还需要以下 NuGet 包来为 SQL Server 提供 EF Core 空间数据支持:
Install-Package Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite
并UseNetTopologySuite在您的 EF 上下文配置中使用该选项:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(
@"my connection string",
x => x.UseNetTopologySuite());
}
然后你可以做这样的事情:
var nearestCity = db.Cities
.OrderBy(c => c.Location.Distance(currentLocation))
.FirstOrDefault();
我在使用 Entity Framework Core Spatial Data 的博客文章中找到了附近的用户。
TA贡献1804条经验 获得超2个赞
我只是偶然发现了您的帖子以及您提到的第一个链接。就在几天前,EntityFrameworkCore 2.2.0 的预览版发布了,它应该支持 SQL Server 中的空间数据类型。
请参阅https://github.com/aspnet/EntityFrameworkCore/issues/1100#issuecomment-417618315和以下评论。
我自己还没有尝试过,它可能无法 100% 工作,但肯定值得一试。
- 2 回答
- 0 关注
- 211 浏览
添加回答
举报