選択したデータソースからデータを正常に取得する Linq プロバイダーがありますが、フィルター処理された結果セットを取得したので、Linq to Objects が式ツリーの残りの部分を処理できるようにすることです (結合、結合など)。投影など)
私の考えでは、IQueryProvider を含む式定数を ExpressionVisitor を介して結果セット IEnumerable に置き換え、その新しい式を返すことができると考えていました。また、私の IQueryable から IEnumerable のプロバイダーを返します...しかし、これはうまくいかないようです:-(
何か案は?
編集:ここにいくつかの良い答えがありますが、フォームを考えると...
var qry = from c in MyProv.Table<Customer>()
Join o in MyProv.Table<Order>() on c.OrderID equals o.ID
select new
{
CustID = c.ID,
OrderID = o.ID
}
私のプロバイダーでは、Customers と Orders から 2 つの結果セットを簡単に取得できます。データが SQL ソースからのものである場合は、SQL Join 構文を作成して渡すだけですが、この場合、データは SQL ソースからのものではないため、コードで結合を行う必要があります...しかし、私が言ったように、私は2つの結果セットを持っており、Linq to Objectsは結合を行うことができます...(そして後で投影)式定数MyProv.Table<Customer>
を置き換えるだけで本当にいいでしょうandMyProv.Table<Order>
を使用して、プロバイダーに式を処理させます...それは可能ですか? どうやって?List<Customer>
List<Order>
List<>