Hei*_*ich 6 c# entity-framework-core
我想使用具有SQL Server中某些地理数据的ASP.NET Core Razor Pages制作Web应用程序。当从现有SQL数据库中使用EF Core创建EF模型时,Visual Studio会给出一个错误,提示它不支持Geography数据类型。有没有一种方法可以使用Entity Framework或EF Core在ASP.NET Core项目中使用SQL空间数据类型(如地理)?
此链接显示了一些解决方法,但没有现成的方法。
此链接是一个较旧的帖子,涉及这个问题。
Mar*_*pic 12
Entity Framework Core 2.2版引入了空间数据支持。它采用NetTopologySuite的数据的类型和它们映射到geography或geometrySQL Server的类型。您可以通过NuGet安装NetTopologySuite:
Install-Package NetTopologySuite
Run Code Online (Sandbox Code Playgroud)
而且,您还将需要以下NuGet包来获得对SQL Server的EF Core空间数据支持:
Install-Package Microsoft.EntityFrameworkCore.SqlServer.NetTopologySuite
Run Code Online (Sandbox Code Playgroud)
并UseNetTopologySuite在EF上下文配置中使用该选项:
protected override void OnConfiguring(DbContextOptionsBuilder optionsBuilder)
{
optionsBuilder.UseSqlServer(
@"my connection string",
x => x.UseNetTopologySuite());
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以执行以下操作:
var nearestCity = db.Cities
.OrderBy(c => c.Location.Distance(currentLocation))
.FirstOrDefault();
Run Code Online (Sandbox Code Playgroud)
我在“ 使用Entity Framework核心空间数据查找附近的用户”博客文章中对此进行了撰写。
我刚刚偶然发现了您的帖子以及您提到的第一个链接。就在几天前,EntityFrameworkCore 2.2.0 的预览版发布了,该版本应该支持 SQL Server 中的空间数据类型。
请参阅https://github.com/aspnet/EntityFrameworkCore/issues/1100#issuecomment-417618315和以下评论。
我自己还没有尝试过,它可能不是 100% 有效,但它确实值得一试。
| 归档时间: |
|
| 查看次数: |
3071 次 |
| 最近记录: |