LINQ to SQL雑感
常駐先の現場で、余剰になったマシンを半ば強制的に奪取し、VS2008の実験環境とする事ができたので、以前から気になっていたLINQにおけるDBアクセスを、実験モジュール(WindowsForm)にて、実現させてみた。
まずは、『ボタン押下→LINQによるDBアクセス→結果をGridViewに出力』という、オーソドックスなサンプルを作成した。使用の第一印象としては、慣れの問題もあってか、正直微妙と言ったところ。結果が画面表示された時こそ、感動を覚えたものだが、従来の『ADO.NETSQLを組む』の方が、脳内でスムーズに組めてしまう始末。要塞SQLを相手にし過ぎた代償であろうか。

LINQを書くに当たり、つまづいた点が、1つ。
参考にしたサンプルガイドでは、Contextクラスのインスタンスを生成する際、usingで明確にスコープを切っており、その中でGridバインドを行っていた。つまり、『LINQアクセス→結果をセット』まで、同一クラス内(この場合、Formクラス)で実施している事になっている。これだと、論理ティアごとに、プロジェクトが異なる場合、ガイド通りには実現できない事になるわけで…。usingの明示的なスコープ切りを止め、Entity階層から、LINQで使用するIOrderedQueryableを返却する(Formで返却値IOrderedQueryableを受け取る)とか、乱暴な事して良いのだろうか(これでできてしまった)。
DataTableに詰め直したりする必要性が出てきた場合にも、スマートにいかず、難儀しそうな予感が…。そんな"場合"が発生しない代物なのであろうか?
…そもそもの捉え方が違うのかもしれない。LINQを使用するに当たり、何か独特な『LINQアタマ』が必要だったりするのか?

ひとまず、もっと勉強して、旨みを理解できるまで、実験する必要があると感じた。