-1
我有這個查詢即時嘗試按距離排序。但是,linq向我拋出一個錯誤,說它不能識別方法GetDistanceTo。查詢在OrderBy子句被取出時起作用。Linq不識別方法GetDistanceTo
var coord = new GeoCoordinate { Latitude = (double?)array.latitude ?? 0, Longitude = (double?)array.longitude ?? 0 };
var property = db.Properties.Select(x => new SearchResultsViewModel
{
geocoord = new GeoCoordinate { Latitude = (double?)x.latitude ?? 0, Longitude = (double?)x.longitude ?? 0 }
}).OrderBy(x=>x.geocoord.GetDistanceTo(coord)).ToList();
您是否試過[DbGeography](https://msdn.microsoft.com/en-us/library/system.data.spatial.dbgeography(v = vs.110).aspx)class? LINQ to SQL可能不支持'GeoCoordinate'。 – Guvante
這是因爲它不知道如何將自定義方法'GetDistanceTo'轉換爲SQL。但是,您可以在'.OrderBy()'之前添加'.AsEnumerable()'來進行內存中的排序。 – Rob