0

私を正しい方向に向けていただければ幸いです。私はEF4.1CFアプローチを使用するソリューションに取り組んでいます。リポジトリパターンも使用します。SQLServerはR2です。

私はユーザーコントロールの開発を任されており、ユーザーが郵便番号を入力して送信すると、入力した郵便番号から半径Nマイルのイベントのリストが返されます。

データベースには、すべてのイベントの緯度と経度が保存されています。また、ユーザーが入力した郵便番号の緯度と経度も確認します。

明らかに、リストのフィルタリングがコードではなくデータベースサーバーで行われる場合は、パフォーマンスにとってはるかに有益です。

すべての計算を実行するためのC#のメソッドがあります。SQLにも同等のものがあります(UDFを作成する場合)。

しかし、私の質問は、Math.Sin、Math.Cosなどを使用してSQLにマップするLINQ式をどのように記述できるかということです。

コードの(非常に)単純な例は次のとおりです。

return p => p.Latitude == Math.Sin(0.90678234688337252436989061980805); <<<明らかに本番コードでは、変数があり、この式はこの例よりも重いでしょう。

このコードブロックが実行されたときに実行時に取得するのは、次の例外だけです。

「LINQtoEntitiesはメソッド'DoubleSin(Double)'メソッドを認識せず、このメソッドをストア式に変換できません。」

あなたの助けとアドバイスをありがとう。

JC

4

0 に答える 0