次の方法で共有


LINQ to SQL (SQL Server Compact)

統合言語クエリ (LINQ to SQL) は、.NET Framework 3.5 のコンポーネントの 1 つです。クエリ機能を提供すると共に、リレーショナル データをオブジェクトとして管理するための実行時インフラストラクチャを提供します。このインフラストラクチャは、LINQ to SQL が、データベースで実行可能な SQL に統合言語クエリを変換し、表形式の結果を、ユーザーが定義したオブジェクトへと変換することによって実現されています。このオブジェクトはアプリケーションから自由に変更でき、変更は LINQ to SQL によってバックグラウンドで自動的に追跡されます。

同時に、LINQ to SQL のランタイム インフラストラクチャおよびデザイン時ツールは、データベース アプリケーション開発者の作業負荷を大幅に削減します。LINQ to SQL は言語に依存しません。統合言語クエリ機能を備えたあらゆる言語を使って、リレーショナル データベースにアクセスできます。

注意

リレーショナル データは、共通の列によって各テーブルが関連付けられる、2 次元テーブル (リレーションまたはフラット ファイル) のコレクションとして扱われます。LINQ to SQL を効果的に使用するには、リレーショナル データベースの基本的な原理をある程度理解している必要があります。

SQL Server Compact における LINQ to SQL

既定では、SQL Server Compact 3.5 は Microsoft Visual Studio 2008 のすべてのエディションでインストールされ、開発コンピューターから LINQ to SQL を使ってアクセスできます。ただし、SQL Server Compact 3.5 と LINQ to SQL を使ったアプリケーションの配置手順は、SQL Server アプリケーションの配置手順とは異なります。SQL Server Compact 3.5 は埋め込み型データベースであるため、プロバイダはエンジンと共にパッケージ化されています。

SQL Server Compact 3.5 は、SQL Server と同様、.NET Framework とは別にインストールする必要があります。ただし、SQL Server Compact 3.5 は単独で配置することも、アプリケーションに埋め込むこともできます。これにより、ローカル データを使用するアプリケーションのインストール要件を 1 つ減らすことができます。SQL Server Compact 3.5 をアプリケーションに埋め込むことも、SQL Server Compact 3.5 の Windows インストーラ ファイル (SSCERuntime-<lang>.msi) を使用することもできます。

SQL Server Compact 3.5 は、データベース ファイル (.sdf) を直接操作できる一連の DLL としてパッケージ化されています。SQL Server Compact 3.5 の DLL ファイルは小さく、アプリケーションの全体的なサイズも抑えられます。 埋め込み型の配置では、ローカル データ ストレージ機能を追加するための管理者権限は不要です。

SQL Server Compact 3.5 の LINQ to SQL 機能には、次の利点があります。 

  • 使い慣れた SQL Server の構文でクエリを作成できます。

  • 構文エラーおよびタイプ セーフティをコンパイル時にチェックできます。

  • デバッガのサポートが強化されています。

  • IntelliSense をサポートしています。

  • 強力なフィルタ、並べ替え、およびグループ化機能があります。

  • データ ソースおよびデータ形式の違いにとらわれず、データを同じ方法で操作できる一貫性のあるモデルです。

SQL Server との相違点

SQL Server Compact 3.5 の機能セットは、ローカルの埋め込みデータのシナリオに関連して、他の SQL Server バージョンの豊富なサブセットを備えています。埋め込み型の配置に対応した SQL Server Compact 3.5 は、ローカル データ利用に必要な豊富な機能セットを、デバイスからデスクトップまであらゆる Microsoft クライアントでサポートします。SQL Server Compact 3.5 における LINQ to SQL の特徴を次に示します。

  • LINQ to SQL ランタイムおよび SQLMetal コマンド ライン ツールをサポートします。

  • SQL Server のデータ型および関数の豊富なサブセットをサポートします。

  • ローカル データのシナリオに関連した SQL 構文の豊富なサブセットをサポートします。

  • クエリ オプティマイザは、ローカル データのシナリオが想定されているため、LINQ to SQL クエリが複雑すぎて SQL クエリにマップできないとタイムアウトが発生する場合があります。

  • ストアド プロシージャやビューはサポートされません。

  • オブジェクト リレーショナル デザイナはサポートされません。

  • 部分信頼はサポートされません。

SQL Server Compact 3.5 の LINQ to SQL のパフォーマンスを最適化するには、LINQ to SQL のコンパイル済みクエリ機能を使用して、事前に Transact-SQL クエリを作成します。可能であれば、できる限りコンパイル済みクエリを使用することをお勧めします。また、更新が不要である場合、LINQ to SQL の DataContext は読み取り専用モードで使用してください。DataContext を設定するには、次のステートメントを使用します。

DataContext.ObjectTrackingEnabled=false

関連項目

その他の技術情報

LINQ to SQL

統合言語クエリ (LINQ)