gpt4 book ai didi

c# - Entity Framework Core 对 SQL 空间数据类型的支持 - DBGeography?

转载 作者:太空狗 更新时间:2023-10-29 21:03:53 31 4
gpt4 key购买 nike

我想使用 ASP.NET Core Razor Pages 创建一个 Web 应用程序,该应用程序在 SQL Server 中包含一些地理数据。当使用 EF Core 从现有 SQL DB 创建 EF 模型时,Visual Studio 会给出一个错误,指出它不支持 Geography 数据类型。有没有办法在使用 Entity Framework 或 EF Core 的 ASP.NET Core 项目中使用地理等 SQL 空间数据类型?

This链接显示了一些解决方法,但没有开箱即用。

This link是处理这个问题的旧帖子。

最佳答案

Entity Framework Core 2.2 版引入了空间数据支持。它使用 NetTopologySuite数据类型并将它们映射到 geographygeometry SQL Server 类型。您可以通过 NuGet 安装 NetTopologySuite:

Install-Package NetTopologySuite

并且您还需要以下 NuGet 包来支持 SQL Server 的 EF Core 空间数据:

Install-Package Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite

并在您的 EF 上下文配置中使用 UseNetTopologySuite 选项:

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();

我在我的 Finding Nearby Users with Entity Framework Core Spatial Data 中写过它博文。

关于c# - Entity Framework Core 对 SQL 空间数据类型的支持 - DBGeography?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51681889/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com