なるほど、LINQか

Droolsはおもしろそうだけど、実際に使う機会は皆無に近い。どうせ時間を使うなら、もっと現実的なテーマにすべきだな、ということで先日のお手伝いで必要性を痛感したVB.NETでのDAO(Data Access Object)クラスについてちょっと調べて見る。しかしぐぐっても「DBとの接続方法」としてのDAOばかり。1つそれっぽいのを見つけたけど、もう5年以上メンテされてない。で、見方をかえて「Entity」にしたら、その名もずばりADO.NET Entity Frameworkというのがあるじゃない。これだよこれ。ただクエリの形式が予想外。getByHogehoge()みたいなメソッドが生成されるのかと思ったら、次のような見慣れないけど、めっちゃ強力そうな構文が用意されていた。

Dim departmentQuery As ObjectQuery(Of Department) = _
    From d In schoolContext.Departments.Include("Courses") _
    Order By d.Name _
    Select d

調べてみると、あ~これがLINQなのか。先日VB.NETの資料を漁っていて気になってたやつだよ。お手伝いしていたのは.NETのVersionが古くてだめだけど、今はこういう機能が備わっているんだ。恐るべし.NET Framework