我正在尝试将NetTopologySuite与EF Core 2.2.6结合使用来进行地理搜索。
我已经成功地在模型中添加了位置Point
,并且EF Core 可以读取和写入此属性。
但是,当我尝试将此谓词添加到查询中时,我看到了两个问题:
query = query.Where(x => x.Foo.Bar.Location.Distance(new Point(longitude, latitude) { SRID = 4326 }) <= distance);
NullReferenceException
异常。 at lambda_method(Closure , TransparentIdentifier`2 )
at System.Linq.Enumerable.WhereSelectEnumerableIterator`2.MoveNext()
at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.<_TrackEntities>d__17`2.MoveNext()
at Microsoft.EntityFrameworkCore.Query.Internal.LinqOperatorProvider.ExceptionInterceptor`1.EnumeratorExceptionInterceptor.MoveNext()
at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
我已经检查过的东西:
UseNetTopologySuite()
覆盖了OnConfiguring
。NetTopologySuite.Core
1.15.3版,这是EF Core 2.2.6的合适版本。