Вызов пользовательской функции 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 

Ответы на вопрос(2)

Ваш ответ на вопрос