認知的プログラミング(仮)−LINQ on SQLCLR
SQLCLR 上で LINQ を使おうとしたが、うまくいかないのでメモ。
- SQL Server 2005 の SQLCLR は、.NET 2.0 ベースなので、.NET 3.5 からサポートされた LINQ は使えない。
- SQL Server 2008 でも、System.core.DLL を突っ込むとできるとか、できないとか。
- LinqBridge とやらを使えば、できそうではあるが、わりと無理クリ感が…
http://devadjust.exblog.jp/8701606/
SQL Server 2008R2 でできるようになるのかしらん?
追記:
プロジェクトを .NET 3.5 用に設定し直して、SQL Server 2005 に配置しようとしたら、以下のメッセージ
エラー 1 アセンブリ 'system.core, version=3.5.0.0, culture=neutral, publickeytoken=b77a5c561934e089.' が SQL カタログに見つかりませんでした。
なるほど。上での例は、.NET 3.5 の System.core.DLL を突っ込めばいいじゃーん的な話ってことですね。
そんなもん、仕事で通る訳なかろーw
追記2:
SQL Server Express を、2005 から 2008 にインストールしなおしたら、できるようになりました。
- Visual Studio 2008 は、SP1 を当てないと、サーバーマネージャからデータベースが作れない(SQL2008に対応しない)。
- 当然、.NET の設定は .NET 3.5 にしないとダメ
めでたしめでたし。