ADO.AdapterやADO.Updateが使う、自動生成されるSQLの冗長さもあって、OR Mapppigが嫌で、DataSet型を毛嫌いしていました。
しこしこSQL文を書いていました。それの延長線で、Linq2SQLも使いませんでした。
で、VS2010をいじっていく過程で、Linq2EntityとLinq2SQLを触ってみました。
「使えるじゃん」という印象です。Linq2SQL.Log で吐き出すSQLをみる限り、冗長性は改善されています。
joinなどが、言語側で記述できるのがよいですね。
でも、安易に書くと冗長なSQLを吐き出すので、結果のSQLの検証は必須なので、「SQLを知らなくても使える」とミスリードするのは疑問です。
逆に、より深い知識を要求されそうです。実行計画を見る場面も増えそうです。
Linq2Entitiesの棲み分けが見えません。簡単な動作テストしかしてませんが、Linq2SQLと Linq2Entityで差が見えない。
逆に、不便な点が目につきます。
・MsSQLに限定される。
・Linq2Entityを別プロジェクトで構築したとき、メイン側のapp.configに登録しないと、接続できない。
・同じプロジェクトで同じDBに対して、 Linq2SQLとLinq2Entity を同居させたとき、名称が重複してコンパイルできない現象がある。
等々。
当分は、Linq2SQLで十分かな。
0 件のコメント:
コメントを投稿