2009-05-14 6 views
12

明確化のビット:EntityフレームワークのJulia LermanのOreillyのタイトルをブラウジングしていましたが、私は大変混乱しました。LINQまたはADO.net Entity Framework - 学習するには?

Entity Frameworkのは未来であるのに対し、私はチャーリーカルバートの基本的なLINQを持っていますが、ラーマン氏の著書と私の10分のセッションから、それはなどそののDataContextオブジェクトに力不足思わSQLにLINQはLINQであることを蒸散...

私の目にはTransact-SQLとまったく同じように見えるEntity SQLというものがあります。今、私の目は少し錆びたかもしれないが、質問は次のとおりです。

Entity Frameworkのは、Microsoftが支持している主な馬なので、その

 var numberGroups = 
      from n in numbers 
      group n by n % 5 into g 
      select new { Remainder = g.Key, Numbers = g }; 

とAMとLINQ to SQLのを学ぶの任意のポイントがあります私は、Entity SQLとLINQが2つの異なるテクノロジであると考えると、Entity SQLは実際にLINQを使用しているのではないかと思っていますか?

は、私が得た多くの返信投稿:

[OK]を人々が、私はこれに新たなんだので、私はこの時にあなた、フル迅速なと非常に参考に答えを;-) 感謝を私の答えを編集しています。 よろしくお願いします。 MereMortal

+1

多くの人が、将来のEntity Frameworkについて意見を異にするでしょう:http://efvote.wufoo.com/forms/ado-netentity-framework-vote-of-no-confidence/ :) – BobbyShaftoe

+0

残念ながら、その手紙はまったく無関係。彼らはEFがそれを書く前に既に出荷されるまで待っていました。それは希望的な考えとしてもカウントされません。 –

+0

LINQ to Entities(LINQ to Entities)には、LINQ to Entitiesを学ぶための構文がありますが(エンティティは大きな設定とメタデータを記述するXMLファイルを持っていますが)、どちらの場合でも同じクエリが返されますか? – MereMortal

答えて

9

LINQは、ある種のデータストアを介してC#またはVB.NETでクエリを書くことを許可する言語機能の総称です。 LINQ to SQL、LINQ to Objects、LINQ to Objectsなどがあります。

LINQ to SQLは、物理データベース構造を詳細にモデル化しています。これは、データベース内のすべてのテーブルに対して1つのタイプを生成します。データベースが変更された場合は、LINQ to SQLコードを変更する必要があります。

LINQ to Entitiesは、概念的なデータベース設計をより詳細にモデル化しています。これにより、物理データベースにマップすることができますが、たとえば、PersonテーブルとContactsテーブルの両方のデータを含むPersonエンティティを1つ作成できます。これにより、発信者は、データの実装方法の代わりに、データの意味がであると考えることができます。

また、マイクロソフトでは、LINQ to SQLの開発と比較して、LINQ to SQLの将来の開発は制限されると述べています。柔軟性が増し、LINQ to SQLでさらに多くの機能拡張が得られないことを考えれば、LINQを使ってEntityとEntity Frameworkに行くことができます。

1

LINQのは、あなたが私はあなたが話していると思うことをLINQ to SQLはそこにある、あなたのオブジェクト

を問い合わせることができますプログラミング構築物です。

あなたは常にEFオブジェクトを照会するためにLINQを使用することができます...

25

LINQ!= LINQからSQLへ

LINQは、いくつかの言語サポートを含む概念です。 LINQ-to-SQLは、ADO.NET Data Services、Entity FrameworkのLINQ-to-Entities、LINQ-to-Objects、LINQ-to-SQL、LINQ-to-Amazon、DbLinqなどの多くの実装があります。

LINQをEntity Frameworkで使用していますが、確かにLINQ-to-Entitiesはコンパイル時の静的チェックを提供する選択肢です。エンティティSQLは、EDM(エンティティデータモデル)を照会するための単なる別のメカニズム(LINQ-to-Entitiesに加えて)です。

ESQLが有用である3つの主な理由があります:

  • は建設
  • の下にまだあったとき、LINQツーエンティティ、それはいくつかのシナリオで使用することができ、早期プレビューでのみオプションでしたは例えば、なしオブジェクト・モデルがある場合ESQLが
  • より表現である例 小さな数があり
  • サービスを報告

他のすべてについては、LINQがEntity Frameworkを操作するツールになります。

+0

よく言った:) Learn linq。 –

+0

Marc、 eSQLは動的クエリにも適しています。もちろん、式の操作などで同じことをすることはできますが、ほとんどの人は式のツリーよりもはるかに快適な文字列を扱います。 –

+0

Entity SQLは、Managed C++のようなLINQをサポートしていないプログラミング言語でも使用できます。 –

0

エンティティフレームワークにはLINQ to Entitiesがあるため、EFに対しても同じクエリを実行できます。そして、私の答えは、EFv4のアップメイキングが期待しているように見えます。

4

他の人が言っているように、おそらくLinq to SQL対Entity Frameworkを意味します。

両方ともSQL Serverで動作しますが、Entity Frameworkのみが他のデータベースで動作します。また、LINQ to SQLは多かれ少なかれ償却されています。したがって、Entity Frameworkを使用してください。

1

とにかく。そこにゆっくり。

短い答え:Entity Frameworkの

長い回答:

LINQをSQLとEntity Frameworkのにデータアクセステクノロジです。

LINQのは、MSによれば、

LINQは、.NET 言語統合クエリを包含するフレームワークセット、および オペレーションを変換する拡張セットです。クエリのためのC# とVisual Basicのネイティブ言語 構文を拡張し、 ライブラリを提供して、これらの 機能を利用します。

:SQLとEntity Frameworkのにhttp://msdn.microsoft.com/en-us/netframework/aa904594.aspx

両方LINQは、それらに対してクエリを実行するとき、その素晴らしい構文を可能にLINQプロバイダを、持っています。

0

私が理解しているところでは、EFはプライムタイムの準備がまだ整っておらず、LINQ2SQLで今日簡単に動作する多くのLINQ構成をサポートしていません。

アプリケーション用にSQL Serverにコミットできる場合は、本日、LINQ2SQLについて学習します。 LINQの使用時には、より多くのクエリを実行できます。

私はEFの準備ができたら賭けています。クエリ言語が移転可能でなければならないため、ずっと簡単に移行できます。

幸運。

+0

EF4(.NET 4.0/VS2010で出荷予定)は、現在のEFの欠点や欠点の多くを修正し、非常に有望です! http://blogs.msdn.com/adonet/archive/tags/Entity+Framework/default.aspx –

+0

本当に有益な答えであるLinusに感謝しています。自分自身も同じ結論に達し始めました。私は、EFは非常に精巧で、ADO.Netコマンド/接続/などから自分自身を引き裂くと思っています。SQLへのLINQの学習はおそらく良い、有用な最初のステップです。さらに、LINQ to SQLへの良い参照がたくさんあります。それについて広範囲に書かれているわけではない。 – MereMortal

0

私は12月2日と3日にモントリオールのTehcDaysに出席し、LINQをSQLに数年間サポートしなくなるので、LinQをエンティティ(Entityフレームワーク)に習得するのがよいでしょう。

+0

LINQ to SQLは短期的な解決策でした。名前が示唆するように、それは特にSQLサーバーだけで動作します。一方、EFは複数のデータベースをサポートしています。私が先に書いたblogpostの1つを参照すると、2つの技術を比較することができます。http://nileshgule.blogspot.com/2010/09/entity-framework-part-2-comparison.html –

関連する問題