2008年の終わり頃、LINQ to SQLの将来について多くの議論がありました。 .NET 4.0のEntity FrameworkへのMicrosoftの投資は、LINQ to SQLには将来性がないことを示していると多くの人が示唆しました。みんなが同意しなかったので、自分で決断するまで待つべきだと思った。
18か月早送りしました。LINQto SQLに依存するソリューションを提供するベンダーがいて、私は個人的に試してみて、それとの作業をとても楽しんでいます。ここに留まると思った。
しかし、私は新しい本(Ben WatsonによるC#4.0 How-To)を読んでおり、第21章(LINQ)で、「Microsoftによって多かれ少なかれ非推奨になっている」とLINQ to Entity Frameworkの使用を提案しています。
あなたへの私の質問は、LINQ to SQLが正式に廃止されているかどうか、および/または信頼できるエンティティ(Microsoft、Scott Guなど)がLINQ to SQLではなくLINQ to Entitiesの使用を正式に提案しているかどうかです。
すべての「Linq-to-SQLは死んだ」の人々:Scott Guthrie自身がTechEd EuropeでLinq-to-SQLはであると明確に述べました.NET 4で完全サポート、Damien Guardが ブログ投稿 を投稿し、.NET 4でLinq-to-SQLに加えられた変更と改善について説明しました。
マーク・トウェインを引用するには:「私の死の報告は非常に誇張されています」......
最後にチェックしたところ、このサイトではLinq To SQLを使用しています(または使用していた)。 Joel Spolskyは彼のGoogleTechTalkでこれについて言及しています: http://www.youtube.com/watch?v=NWHfY_lvKIQ 。
ソフトウェアについて言えば、「死んだ」は比喩的な修飾語です(ソフトウェアは文字通りの生物学的な意味で死ぬことはありません)。したがって、関係者が文字通りの意味でそれが何を意味するのかを定義することを拒否する限り、この議論は長引くことができます。 Linq To Die」。または略してLTD。したがって、現時点で、LTDの議論は2年間続いています。少し言語のあいまいさが原因です。
「L2Sは死んでいる」と言う人は、一般に、L2Sが新機能を(もしあれば)あまり受け取らないという事実に言及しています。 Linqの更新( Damien Guardの投稿 で説明されている更新のように)は、パフォーマンス、使いやすさ、および安定性の更新に限定される可能性があります。もちろん、これは良いことだと実際に主張する開発者もいるでしょう(たぶん new dynamic type に少し怒っている同じ開発者)。
「L2Sは死んでいない」と言う人は、一般にL2Sが.Netから完全に削除されるわけではないという事実に言及しています(少なくとも、すぐには)。考えてみてください。ADO。実践的な開発者の間でその牽引力の一部を失う可能性があります(そしてそれはMicrosoftの巧妙な人々の暗黙の欲求である可能性があります)が、必要に応じてL2Sを使用できなくなるという意味ではありません。それは単にマイクロソフトがそれで大衆を食い込ませようとしていないことを意味します。
プロジェクトを始めるとき、EFとL2Sのどちらかを選択できるのは素晴らしいことだと思います。ビル・ワーグナーとして 指摘、両方の時間と場所があります。
私はこの議論に遅れましたが、2008年までさかのぼって、Link to SQL Project Manager(Tim Mallalieu)がこの発表を彼の blog post で行ったことを指摘したかったのです。
「.NET 4.0以降、LINQ to SQLではなくLINQ to Entitiesは、LINQ toリレーショナルシナリオに推奨されるデータアクセスソリューションになります。」
これに反する最近の発表は他にありません。
いいえそうではありません。チームはまだそれを改善するために取り組んでいます。
InfoQ.comに投稿された この記事 を必ず確認してください。これは本当に興味深いものです。その結論:「長期的にLINQ to SQLとLINQ to Entitiesは合併するでしょう。それまでの間、LINQ to SQLの開発作業は完全には終わりません。」
LINQ to SQLは、Microsoftがリリースした最初のオブジェクトリレーショナルマッピングテクノロジーです。これは基本的なシナリオでうまく機能し、Visual Studioで引き続きサポートされますが、現在アクティブな開発が行われていません。レガシーアプリケーションを維持するときにLINQ to SQLを使用しますそれはすでに使用しているか、SQL Serverを使用し、マルチテーブルマッピングを必要としない単純なアプリケーションで使用しています。一般に、オブジェクトリレーショナルマッパーレイヤーが必要な場合、新しいアプリケーションはEntity Frameworkを使用する必要があります。
彼らが合併するのは必然だと思います。 EFは、実際にはdbオブジェクトを介したLINQのエンタープライズレベルの実装です。 linq2sqlは、実際に脚光を浴びたが、EFで現在見られる多くのアイデアを活性化した概念実証(およびそれ以上)のすべての目的でした。 1日の終わりに、DALレイヤー(nhibernate、EF、l2s、亜音速など)は、LINQサービスに影響を与えるクライアントBOコードの違いを打ち消すために、かなり遠くまでチェーンの下方にある必要があります-ホットスワップ可能が終わりですDI経由のゲーム。