2
I previously asked關於在Linq To Entities中鏈接條件的問題。 現在我使用LinqKit,一切正常。 我想看看生成的SQL,並在閱讀this answer後,我用LinqPad。使用PredicateBuilder,LINQPad和運算符生成的SQL ANY
這是我的發言:
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();
作品...跆拳道?
問題不在Visual Studio中,而是在LinqPad中。 在Visual Studio中,它沒有問題。 我試過你的解決方案,沒有運氣。 – 2010-03-29 11:01:59
你在使用Entity Framework嗎?如果是這樣,你在LINQPad中連接時選擇'Custom EF Context'嗎?如果您直接連接到LINQPad中的數據庫,那麼您使用的是LINQ to SQL,它可能會導致差異。 – 2010-03-30 00:52:38