4

LINQ to Dataset は LINQ to EF のサブセットですか、それともこれら 2 つは独立していますか?

4

3 に答える 3

6

それらは独立しています。

  • Linq to Dataset は、以前に ADO.NET を使用して作成された DataSet に対して機能します。データセットは linq を使用する前に読み込まれるため、SQL クエリは動的に構築されません。

  • Linq to EntityFramework は、エンティティ フレームワークのコンテキストに対して機能します。ここでは、指定した Linq クエリに基づいて、SQL クエリが動的に構築されます。

于 2010-03-13T14:35:07.567 に答える
3

それらは独立しており、うまく連携することさえできません。

LINQ-to-Datatsets は、IEnumerable に基づいて、既に DataTable に読み込まれているデータに対して LINQ クエリを実行できる拡張メソッドのセットです。List<> やその他のコレクションのクエリに近いです。

LINQ-to-Entities は、クエリ プロバイダーと IQueryable を使用して、LINQ クエリを SQL クエリに変換します。また、データベース テーブルをオブジェクトとしてモデル化することもできます。

EF を使用すると、(はるかに多くの) オブジェクト指向を記述できます。DataSet の使用は、データベース指向のままです。

于 2010-03-13T17:32:31.153 に答える
3

Linq は queryProviders の概念で動作します。クエリ プロバイダーは、ラムバ式を基になるデータ ストアのクエリに変換する役割を果たします。Obalix が私の前に言ったように、Linq to Entities クエリ プロバイダーは、ラムダを使用した linq を、基になる ado.net オブジェクトを使用して実行される実際の SQL に変換します。ここで正規関数を見てください、SQLに変換されます(そうでないことに注意してください)。一方、linq to dataset は DAtaSet インフラストラクチャに対して機能します。覚えているかもしれませんが、Data Set にはいくつかのクエリが関連付けられています。(ゲッター、更新、削除、挿入) DataAdapters オブジェクトの使用。Linq クエリは、データセット = テーブル、列などに既に存在するオブジェクトにマップされます。プロバイダーはそのような低レベルで動作しないため、SQL クエリは構築されません。データ セットは、使用するデータの抽象化です。

データベースにとらわれない場合は、SQL への linq を検討してください。私の意見が正しければ、Oracle への linq プロバイダーもあります。

于 2010-03-13T15:35:05.863 に答える