Verifique se o dbgeometry / dbgeography point da dbgeometry está dentro de um polígono

Eu tenho um problema, espero que vocês possam me ajudar a resolver.

Eu tenho um ponto DbGeometry (ou DbGeography, eu posso usar ambos) e eu gostaria de verificar se isso está dentro de um Polygon DbGeometry (alternativamente um DbGeography).

Eu estou fazendo isso no momento:

var dbZones = new List<WasteManager.Database.Zone>();
foreach(var zone in zones)
        {
            var res = from z in DatabaseContext.Zones
                   let boundary =
                       !z.BoundaryGeometry.IsValid
                           ? SqlSpatialFunctions.MakeValid(z.BoundaryGeometry)
                           : z.BoundaryGeometry
                      where z.ID == zone.ID && point.Within(boundary)
                      select z;

            if(res.FirstOrDefault() != null) dbZones.Add(res.FirstOrDefault());

        }

Então eu percorro as zonas (entidade EF do meu banco de dados) e verifico se esse ponto que tenho está dentro desse limite.

O problema é que ele não retorna nenhum resultado, mas sei que esse ponto está dentro desse limite porque criei manualmente o limite e o ponto para estar dentro desse limite.

Alguém pode me dizer se o que estou fazendo é errado, se há outra maneira de fazer isso ou qualquer outra coisa?

Muito aprecio.

Manuel

questionAnswers(3)

yourAnswerToTheQuestion