1

Linq to Entities に変換しようとしている SQL 文字列と接続を使用する古いメソッドがいくつかあります。

次のように、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 to EF で実行できますか? もしそうなら、どうすればこのクエリを再構築して機能させることができますか?

4

0 に答える 0