11

LINQのユーザー定義テーブル値関数にクロスアプライするクエリを作成したいと思います。SQLは、以下のように非常に単純です。

SELECT *
FROM MyTable mt
CROSS APPLY MyTVF(mt.id)

この投稿では、クロスアプライと外部アプライの両方を含むが、tvfではなくサブクエリのみを含むSQLが生成されるLINQクエリの例を示します。 この記事では、LINQ to SQLが「関係ナビゲーション」の相互適用演算子と外部適用演算子を生成することを確認していますが、このコンテキストでそれが何を意味するのかはわかりません。 これ投稿では、私がやりたいことのほとんどを説明しています。答えは、これを行う唯一の方法は、SQLクエリをストアドプロシージャでラップしてから、LINQを介してspを呼び出すことです。アプリケーション全体で複数のLINQクエリでこのように使用できるtvfが実際に必要なので、これが当てはまらないことを願っています。そのため、「spでラップする」は機能しません。LINQを介して上記の単純なSQLステートメントのようなものを取得する方法を知っている人はいますか?

4

2 に答える 2

15

これはどう:

from mt in db.MyTable
from mf in db.MyTVF (mt.id)
select new { mt.Blah, mf.Blah }
于 2010-06-22T08:44:35.983 に答える