概要 LINQ to SQL で使われる Table クラスなどは IQueryable と IQueryProvider インターフェースを実装しています。 これら IQueryable および IQueryProvider は、 LINQ クエリ式から「式木」を構築する。 構築した式木を解釈して、独自のクエリ処理を行う。 というような機能を提供するインターフェースです。 一度、式木(実行可能コードではなくて、プログラム中で読めるデータ)になるので、 IQueryable の実装次第で様々な機能を提供することができます。 となると当然、IQueryable を実装して、独自の LINQ プロバイダを作成したいとき、 クエリ式 → 式木の構築手順 式木を独自に処理 の2つのことを理解しておく必要があります。 後者は要するに、式木に関する理解があればできることです。 なので、ここでは、前者の