認知的プログラミング(仮)−LINQ on SQLCLR

SQLCLR 上で LINQ を使おうとしたが、うまくいかないのでメモ。

  • SQL Server 2005 の SQLCLR は、.NET 2.0 ベースなので、.NET 3.5 からサポートされた LINQ は使えない。
  • SQL Server 2008 でも、System.core.DLL を突っ込むとできるとか、できないとか。

http://74.125.153.132/search?q=cache:yDg0NozKIP0J:www.eggheadcafe.com/software/aspnet/32011874/sqlclr-linq.aspx+SQL+Server+2008+%22SQLCLR%22+LINQ&cd=8&hl=ja&ct=clnk&gl=jp

  • 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 にしないとダメ

 めでたしめでたし。