1

我尝试使用 efcore 和 linq 请求我的数据库,但出现错误:无法在 varbinary 上调用方法。

我无法整理。

代码是:

places
.Where(p => p.Place.Location != null && p.Place.Location.Distance(currentLocation)<=input.Radius)
.OrderBy(p => currentLocation.Distance(p.Place.Location));

当前位置是:

currentLocation = new NetTopologySuite.Geometries.Point(input.Place.Latitude, input.Place.Longitude)
            {
                SRID = 4326
            };

如果我这样做,它会起作用。似乎这是不起作用的顺序。

places = places.Where(p => p.Place.Location != null && p.Place.Location.Distance(currentLocation) <= input.Radius);
// .OrderBy(p => currentLocation.Distance(p.Place.Location));

input.radius 是一个整数。

你能帮忙吗?

谢谢,

4

1 回答 1

1

好的,我通过在 orderby 中反转调用来解决我的问题

下面的代码适用于任何有问题的人

places = places.Where(p => p.Place.Location != null && p.Place.Location.Distance(currentLocation) <= input.Radius)
.OrderBy(p => p.Place.Location.Distance(currentLocation));
于 2020-03-23T14:10:09.203 回答