どーも最近、ダメな子扱いされがちな LINQ to SQL ですが、クエリ結果を(ほぼ)透過的にキャッシュすることで実行速度を約3倍に加速してみました。 使い方はひじょーにカンタン。 通常 var connectionString = Properties.Settings.Default.Database1ConnectionString; using (var db = new DataClasses1DataContext(connectionString)) { var array = db.Products.Where(__ => __.Price > 500).OrderBy(_ => _.Price).Take(200).ToArray(); } みたいに書くところを var connectionString = Properties.Settings.Default.Dat
左外部結合は、最初のコレクションの各要素を、2 つ目のコレクション内にある要素との相関関係の有無にかかわらず返す結合です。 LINQ を使用すると、グループ結合の結果に対して DefaultIfEmpty メソッドを呼び出すことで、左外部結合を実行できます。 例 次の例は、グループ結合の結果に対して DefaultIfEmpty メソッドを使用し、左外部結合を実行する方法を示しています。 2 つのコレクションの左外部結合を作成するための最初のステップは、グループ結合を使用して内部結合を実行することです。 (このプロセスの説明については、「内部結合の実行」を参照してください)。この例では、Person オブジェクトのリストは、Pet.Owner に一致する Person オブジェクトに基づいて Pet オブジェクトのリストに内部結合されます。 2 つ目のステップは、最初 (左側) のコレクシ
概要 LINQ to SQL で使われる Table クラスなどは IQueryable と IQueryProvider インターフェースを実装しています。 これら IQueryable および IQueryProvider は、 LINQ クエリ式から「式木」を構築する。 構築した式木を解釈して、独自のクエリ処理を行う。 というような機能を提供するインターフェースです。 一度、式木(実行可能コードではなくて、プログラム中で読めるデータ)になるので、 IQueryable の実装次第で様々な機能を提供することができます。 となると当然、IQueryable を実装して、独自の LINQ プロバイダを作成したいとき、 クエリ式 → 式木の構築手順 式木を独自に処理 の2つのことを理解しておく必要があります。 後者は要するに、式木に関する理解があればできることです。 なので、ここでは、前者の
では、Visual Studio を使ったデータベースの作成手順について説明します。 まず、Visual Studio の [ソリューションエクスプローラ] で、LinqToSqlTest プロジェクトを右クリックして、 [追加] → [新しい項目] を選びます。 ダイアログが開いたら、[カテゴリ] から [データ] → [サービスベースのデータベース] を選んで、 適当な名前をつけて(ここでは ComicDatabase.mdf とします) [追加] ボタンを押します。 できた mdf ファイルをソリューションエクスプローラ上でダブルクリックすると、 [サーバーエクスプローラ] が開くので、 サーバーエクスプローラ中の [テーブル] のところを右クリックして [新しいテーブルの追加] を行います。 上記の表1~4のようなテーブル定義を行ってください。 テーブル名は、右下に出ている [プロ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く