2
I previously asked Linq To Entities의 연결 조건에 대한 질문. 이제 LinqKit을 사용하면 모든 것이 잘 동작합니다. 생성 된 SQL을보고 싶습니다. this answer을 읽은 후 LinqPad을 사용합니다. 코드는 VS2008에서 작동PredicateBuilder, LINQPad 및 연산자 ANY로 생성 된 SQL
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();
는, 컴파일하고 올바른 결과 세트를 생성하지만, 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();
작품을 작성하는 경우 ... 무슨 일? , explained in the LINQKit article으로
var predProduct = PredicateBuilder.True<Product>();
var predColorLanguage = PredicateBuilder.True<ColorLanguage>();
predProduct = predProduct.And(p => p.IsComplete);
predColorLanguage = predColorLanguage.And (
c => c.IdColorEntity.Products.Any(predProduct.Compile()));
ColorLanguages.AsExpandable().Where(predColorLanguage).Dump();
: 당신이 LINQKit를 사용하는 것처럼
문제는 Visual Studio에서가 아니라 LinqPad에서 발생합니다. Visual Studio에서 문제없이 작동합니다. 나는 운이없는 당신의 해결책을 시도했다. –
Entity Framework를 사용하고 있습니까? 그렇다면 LINQPad에 연결할 때 'Custom EF Context'를 선택 하시겠습니까? 대신 LINQPad의 데이터베이스에 직접 연결하면 LINQ to SQL을 사용하여 차이점을 설명 할 수 있습니다. –