私は 'VARBINARY(max)'(wavファイルを保存する)のタイプの 'Wav'カラムを持つテーブルを持っており、LinqからSQLへのwavがあるかどうかを確認したいと考えています。Linq to SQLを派生列に変換する方法は?
私の最初のアプローチは、LINQの中で次の操作を実行することでした。
var result = from row in dc.Table
select new { NoWav = row.Wav != null };
上記のコードの問題は、それがRAMにすべてのバイナリコンテンツを盗んだろうし、これは(良い遅く、メモリ空腹ではありません)。
LinqクエリをSQLのようなものに変換する方法はありますか?
SELECT (CASE WHEN Wav IS NULL THEN 1 ELSE 0 END) As NoWav FROM [Update]
私のDBMLの 'Wav'プロパティは遅延読み込みに設定されていますが、これは奇妙な動作を説明しますか? – bounav
デバッガで文をステップ実行し、実際に発行されたSQL文をトレースします。それはあなたがあなたの質問に決定的に答える唯一の方法です:) brunoからの回答と私はそれがあなたのBLOBを持ち込まないことを提案します。それが遅い理由はバイナリデータがRAMに転送されることとは関係がないかもしれません - 遅い部分を見つけるためにいくつかのトレースとストップウォッチステートメントを追加し、クエリを見つけるためにSQLプロファイラ –