Appel SQL, la fonction définie par l'Utilisateur dans une requête LINQ

Je vais avoir un moment difficile l'obtention de ce travail. Je suis en train de faire un radius de recherche avec le Filtre suivant d'aide sur un IQueryable. Il y a un ensemble d'autres filtres appliquée avant RadiusSearch s'applique. L'ordre ne devrait pas vraiment d'importance puisque le but est d'obtenir la requête doit être reporté jusqu'à ce qu'un ToList ().

public static IQueryable<ApiSearchCommunity> RadiusSearch(this IQueryable<ApiSearchCommunity> 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)
    });
}

Je peux en quelque sorte écrire une aide comme GetArcDistance ci-dessus, qui appelle à son tour un UDF sur SQL? La requête que je suis en train de générer est la suivante

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 <= 25 
ORDER BY comms.distance
Quelle est la version de l'entité cadre utilisez-vous?
Je suis l'aide de la version 5.
Avez-vous vérifié Spatiale des types de soutien en EF? msdn.microsoft.com/en-us/data/hh859721.aspx

OriginalL'auteur Praveen | 2013-11-21

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *