我之前问过一个关于 Linq To Entities 中的链接条件的问题。现在我使用LinqKit,一切正常。我想查看生成的 SQL,在阅读了这个答案后,我使用了 LinqPad。
这是我的声明:
var predProduct = PredicateBuilder.True<Product>();
var predColorLanguage = PredicateBuilder.True<ColorLanguage>();
predProduct = predProduct.And(p => p.IsComplete);
predColorLanguage = predColorLanguage.And(c => c.IdColorEntity.Products.AsQueryable().Any(expr));
ColorLanguages.Where(predColorLanguage).Dump();
该代码在 VS2008 中工作,编译并生成正确的结果集,但在 LinqPad 中,我有以下错误:
NotSupportedException: The overload query operator 'Any' used is not Supported.
如果 LINQPad 失败,如何查看生成的 SQL?
编辑
如果我写
var predColorLanguage = PredicateBuilder.True<ColorLanguage>();
predColorLanguage = predColorLanguage.And(c => c.IdColorEntity.Products.Any((p => p.IsComplete));
ColorLanguages.Where(predColorLanguage).Dump();
有效... WTF?