2011-07-07 5 views
2

私はBLToolkitライブラリを使用してSQLプロシージャをLinqに変換しています。BLToolkitとLinqを使用したスカラー関数

今私はちょっとした問題を抱えています。だれかがこれを知っていれば、本当に助けに感謝します。

とにかく、私は次のようになりますSQLクエリ持っている(注:君たちは何が起こっているかを理解することができますので、これは私の実際のテーブル名ではありません、私はちょうどそれらを翻訳)

select 
    P.ProductsID, 
    P.Name, 
    P.Description, 
    dbo.GetTax(P.TaxID, getdate()) -- this is what I need help with 
from 
    Products P 

ここであまりにも派手な何も私は今日のすべての製品の税金を取得する必要があることを除いて。

これをLinqに変換する必要がありますが、これも可能です。私はこのようなものを試しました

from p in Products 
select new 
{ 
    p.ProductsID, 
    p.Name, 
    p.Description, 
    GetTax(p.TaxID, DateTime.Today) //this is what I need help with 
} 

それは動作しません。 GetWork関数は税金を返すちょうど別のlinqクエリです。私はBLToolkitライブラリを使ってスカラー関数を呼び出す方法を知らない。

これは問題です。 Linqの選択されたステートメントからスカラー関数を呼び出すことは可能ですか?

答えて

4

次の関数をどこかに定義します。

[SqlFunction(ServerSideOnly=true)] 
public static double GetTax(int id, DateTime dt) 
{ 
    throw new NotImplementedException(); 
} 

これは、GetTaxをSQLに変換するようにBLToolkitに指示します。

+0

ありがとう、私はこのメソッドの本体の中に、サーバーの機能から値を返すために書く必要がありますか? –

+0

何もありません。この例は完了です。 SqlFunction属性は、BLToolkitにGetTaxを呼び出さないように指示しますが、SQLに変換します。 –

+0

heh、それはあなたがそれほど簡単だと思うだろうか:) PS見たことがない場合は、数日前にGitHubで問題を投稿しました。 –

関連する問題