Вызов пользовательской функции SQL в запросе LINQ
Мне трудно заставить это работать. Я пытаюсь выполнить поиск по радиусу с помощью следующего помощника по фильтру в IQueryable. Существует ряд других фильтров, которые применяются до применения RadiusSearch. Заказ не долженЭто действительно важно, поскольку цель состоит в том, чтобы отложить запрос до операции ToList ().
public static IQueryable RadiusSearch(this IQueryable communities)
{
var centerLatitude = 30.421278;
var centerLongitude = -97.426261;
var radius = 25;
return communities.Select(c => new ApiSearchCommunity()
{
CommunityId = c.CommunityId,
City = c.City,
//Distance = c.GetArcDistance(centerLatitude, centerLongitude, c.Latitude, c.Longitude, radius)
});
}
Могу ли я как-то написать помощник, как GetArcDistance выше, который в свою очередь вызывает UDF на SQL? Запрос, который я пытаюсь сгенерировать, следующий
SELECT
comms.community_id,
comms.city,
comms.distance
FROM (
SELECT
c.community_id,
c.city,
dbo.udf_ArcDistance(
30.421278,-97.426261,
c.community_latitude,
c.community_longitude
) AS distance
FROM communities c) AS comms
WHERE comms.distance