Linq to Entities中的数学函数

时间:2013-10-23 14:50:33

标签: vb.net linq-to-entities

我有一些使用sql字符串和连接的旧方法,我试图将其转换为Linq to Entities。

我已经将sql重写为ef查询,如下所示;

Using ctx As New DataEntities()
        Dim station As String = (From sta In ctx.weather_stations
                                 Let distance = SqlFunctions.SquareRoot(Math.Pow(69.1 * (sta.latitude - lat), 2) + Math.Pow(69.1 * (longi - sta.longitude) * SqlFunctions.Cos(sta.latitude / 57.3), 2))
                                 Where distance < withinRange
                                 Order By distance
                                 Select sta.station_id).Take(1).ToString()
        If Not String.IsNullOrEmpty(station) Then
            Return station
        Else
            Return String.Empty
        End If
    End UsingData

这会出错, LINQ to Entities无法识别方法'Double Sqrt(Double)'方法,并且此方法无法转换为商店表达式。

这个查询可以在Linq到EF中完成吗?如果是这样,我该如何重建此查询才能工作?

0 个答案:

没有答案