そもそもLINQあるいは[ADO.NET Entity Framework]はこれからどうなっていくのでしょうか。
[ADO.NET Entity Framework]に対して、多くのテスターが不信任を出しています。
http://japan.zdnet.com/sp/feature/07microsoft/story/0,3800083079,20376043,00.htm
それでもマイクロソフトは[ADO.NET Entity Framework]の開発を進めていくそうです。
[ADO.NET Entity Framework]のいい解説書もない中、今この技術に飛びつくのは得策でしょうか。
もう少し時間がたてば答えがはっきりするでしょう。
いまそのことは横に置いて、勉強中の私がこの時点で理解している限りで、この技術の俯瞰図を描いてみようと思います。
リレーショナルデータベースの問い合わせ、変更等の操作の方法として、リレーショナルDBが考案されて以来SQLがあります。SQLはデータベースを直接操作します。
ADO.NETでは、DBとの非接続の技術が導入されました。すなわち、一度プログラムでメモリ上(Dataset)にデータを取り込んで(DBの接続を切断し)、その後でまとめてDBに返す方法です。これもアプリケーションプログラムでDBを直接管理します。
[ADO.NET Entity Framework]でも直接DBを操作する方法は残っていますが(EntityClient)、その上にビジネスロジックのEntityを操作することでDBそのものを操作をする方法が提案されました。その操作手段として、まずEntitySQLというT-SQLに似た文字列式があります。EntitySQLはこのどちらのレイヤでも動作します。
これに対して[LINQ to Entity]はいわゆるLINQ構文で、VS2008ではインテリセンスが作動しますし、コードの生産性は非常に高まると思われます。
私は[ADO.NET Entity Framework]についてはまだ初心者ですが、自分で書いてみると、ADO.NETで一つのクエリを発行するのに、コネクションを開き、データセットを定義し…とかの前準備が沢山必要であることを考えるといかに少ないコードですむかということを痛感します。
細かいことはまだわからないことが多々ありますが、(プロジェクトによっては)十分使う価値があると思います。