某所で見かけたのですが、TechEd2007 3日目の赤間さんのセッションの訂正点があるそうな。
何でも赤間さんによりますと・・・。
間違っていた点は何かというと、「LINQ は eSQL の言語マッピング仕様である」という点。正しくは、「LINQ や eSQL を使うと、概念レベルのクエリが記述できる」です。
LINQ も eSQL も、上位の概念レベルのクエリを記述できる技術なので、(業務 DB アプリケーション開発の)開発水準を一段あげることができる、という点で同じ。……なのですが、技術的に見た場合に LINQ が eSQL の言語マッピングになっている、という説明自体は誤りです。
これは言われてから考え直してはたと気づいたのですが、eSQL (ADO.NET EF) は論理データソースとして RDBMS を中心に考えられているので、LINQ に比べると狭い。どちらも概念レベルクエリを実現できる技術ではあるのですが、データソースの幅は eSQL よりも LINQ の方が広い、と。なので、LINQ の方が eSQL をカバーするような関係になります。
# 「LINQ が(論理レベルより上位の)概念レベルのクエリを実現できる技術」という、セッションの一番の肝の部分はずれていないのですが、LINQ と EF との間の関連性については勘違いしていました。しかもまとめスライドにその記述が....
この辺、厳密に説明しようとするとかなり難しいのですが、(繰り返しになりますが)LINQ が開発水準を一段上に持ち上げられる(概念レベルでのクエリ処理が書ける)技術である、という点については必ず押さえておいてください。ここが一番重要な点ですので。
スペシャルセッションで誤った記述をしてしまって本当にすみません。とりあえず速報ベースで修正させてください。pptx については、公開前に正しい説明に修正しておくようにします。
とのことでした。
要はLINQはADO.NET Entity FrameworkをマッピングするためにあるのではなくてLINQはADO.NET EFもサポートする技術ですよーってことですね(^^;
取り急ぎ、情報を入手したのでご連絡まで(^^)