LINQ to Entities 中仅支持无参数构造函数和初始值设定项.地理坐标(纬度、经度);.

本文关键字:坐标 纬度 经度 支持 Entities to 参数 构造函数 LINQ | 更新日期: 2023-09-27 18:36:33

我有这种情况:我需要使用纬度和经度找到附近的位置。使用这个:

var coord = new GeoCoordinate(latitude, longitude);
                var nearest = context.ParkingSpaces.Select(x => new GeoCoordinate(x.Latitude.Value, x.Longitude.Value))
                                         .OrderBy(x => x.GetDistanceTo(coord)).First();

但是我收到以下错误:

LINQ to 实体中仅支持无参数构造函数和初始值设定项

请帮忙

LINQ to Entities 中仅支持无参数构造函数和初始值设定项.地理坐标(纬度、经度);.

你可以重写成这样的东西:

var coord = new GeoCoordinate(latitude, longitude);
var nearest = context.ParkingSpaces
     .Select(x => new { Latitude = x.Latitude.Value, Longitude = x.Longitude.Value })
     .ToList()
     .Select(x => new GeoCoordinate(Latitude, Longitude))
     .OrderBy(x => x.GetDistanceTo(coord))
     .First();