小编Mat*_*ech的帖子

更新后无法使用 EF Core 中的空间数据按距离(米)进行过滤

我有一个包含几何列的表,使用EF Core 空间数据Npgsql.EntityFrameworkCore.PostgreSQL 提供程序

class City
{
    public int ID { get; set; }

    public string CityName { get; set; }

    public Point Location { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

我曾经这样按距离过滤

Point myLocation = new Point(longitude, latitude)
{
    SRID = 4326
};
cities = db.Cities.Where(a => a.Location.ProjectTo(2855).Distance(myLocation.ProjectTo(2855)) <= radiusMeters);
Run Code Online (Sandbox Code Playgroud)

更新后我收到以下错误:

无法翻译 LINQ 表达式“DbSet()...”。其他信息:方法“App.GeometryExtensions.ProjectTo”的翻译失败。

它无需使用即可工作ProjectTo(),但按度数计数。有没有办法再次将此查询翻译为与仪表一起使用?

c# postgis npgsql nettopologysuite entity-framework-core

7
推荐指数
0
解决办法
667
查看次数

ASP.NET Core 3.1 - HTTP 错误 500.30 - ANCM 进程内启动失败

我正在使用 3.1 版本配置 net core web api。我已经在这里检查了这个问题,但没有一个答案适用于我的案例。

我尝试使用 net core ver 3.1 配置 web api。另一个具有类似配置和相同版本软件包的应用程序也可以在我的电脑上使用相同的 iis express。

这是我的 Startup.cs

public class Startup
    {
        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }
        public IConfiguration Configuration { get; }
        readonly string AllowSpecificOrigins = "_allowSpecificOrigins";


        public void ConfigureServices(IServiceCollection services)
        {
            services.AddCors(options =>
            {
                options.AddPolicy(AllowSpecificOrigins,
                builder =>
                {
                    builder.AllowCredentials().AllowAnyMethod().AllowAnyHeader().WithOrigins("http://localhost:4200");
                });
            });

            services.AddControllers()
                .AddNewtonsoftJson();

            services.AddScoped<IAccountRepository, AccountRepository>();
            services.AddScoped<IDocsRepository, DocsRepository>();

            services.AddDbContext<LibContext>(options =>
                options.UseNpgsql(Configuration.GetConnectionString("LibraryDatabase"), x => x.UseNetTopologySuite()));

            services.AddAuthentication(JwtBearerDefaults.AuthenticationScheme)
                .AddJwtBearer(options =>
                {
                    options.RequireHttpsMetadata = false; 
                    options.TokenValidationParameters = new TokenValidationParameters …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core asp.net-core-webapi

6
推荐指数
1
解决办法
2万
查看次数