【问题标题】:Removing a radius clause in my dbGeography linq-to-entity statement在我的 dbGeography linq-to-entity 语句中删除半径子句
【发布时间】:2018-08-15 08:54:43
【问题描述】:

如何删除我的 linq-to-entity 语句中的“半径”,以便它不会将搜索限制在半径范围内?

仅供参考 - 我希望我的查询搜索以“术语”开头的名称,并从最接近位置点的名称开始向外搜索,但不将其限制为半径

DbGeography location = DbGeography.FromText("POINT(" + longitude.ToString() + " " + latitude.ToString() + ")");
            int radius = (50 * 5280); // 50 miles

            var namesList = (from N in dbContext.Profiles
                             where N.FullName.StartsWith(term) 
                             && N.LocationPoints.Distance(location) <= radius
                             orderby N.LocationPoints.Distance(location) ascending
                             select new ProfileNameSearch {
                                 label = N.FullName + " - " + N.Location,
                                 value = N.FullName,
                                 location = N.LocationPoints.Latitude.ToString() + "," + N.LocationPoints.Longitude.ToString()
                             }).Take(10).ToList();

【问题讨论】:

    标签: c# linq linq-to-entities dbgeography


    【解决方案1】:

    只需删除该行

    && N.LocationPoints.Distance(位置)

    【讨论】:

    • 但我希望搜索从该位置开始并向外移动
    • N.LocationPoints.Distance(location)的订单不是这样处理的
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-03
    • 2021-12-25
    • 1970-01-01
    相关资源
    最近更新 更多