私のデータベースでは、いくつかの関数を定義していますfnTest
。LINQ/EF クエリからその関数を呼び出すことはできますか? このようなもの:
var param3, param4;
var res = (from x in db.Something
where x.field1 > 0
orderby fnTest(x.f1, x.f2, param3, param4)
select x).Take(20);
ご覧のとおり、返される値を使用してデータを並べ替える必要があるため、DB 側でその関数を実行する必要があります。最初の 2 つのパラメーターはテーブルのフィールドで、次の 2 つのパラメーターはプログラムで変更される数値ですが、クエリごとに一定です。
DBですでに作成されている関数を何らかの方法で呼び出すことは可能ですか? または、次のようなものを使用する必要がありますか:
((IObjectContextAdapter) context).ObjectContext.CreateQuery
手動でクエリを記述しますか?