私はSQLの動作に奇妙なLINQを見つけました。LINQ to SQL:ラムダ式を再利用
ラムダ式を定義し、それをLINQステートメントで使用したいと考えています。 、
Unsupported overload used for query operator 'Any'.
しかし:
[...]
Func<Table1, bool> lambda = x => x.Id > 1000;
var result = dataContext.Table1s.Where(lambda);
[...]
をしかし、私は関連するテーブル
[...]
Func<Table1, bool> lambda = x => x.Id > 1000;
var result = dataContext.Table2s.Where(x => x.Table1s.Any(lambda));
[...]
に声明の中で、私のラムダ式を使用しようとすると、私は例外を取得:次のコードは正常に動作しますこれは私には分かりません:ラムダをクエリに直接入れるとうまくいく:
[...]
var result = dataContext.Table2s.Where(x => x.Table1s.Any(y => y.Id > 1000));
[...]
なぜですか?
ありがとうございました。
'var lamda = x => x.Id> 1000;'を試してみてください。それが助けになるかどうかわからないが、それは... – Alxandr
@Alxandr - それは実際に法的ではない。ラムダ式は 'Func <>'か 'Expression>'にコンパイルできます。あなたの例では、コンパイラはどちらを使いたいのかを知ることができず、エラーを投げます。 –