인사말, Linq to Entities를 사용하여 얻은 IQueryable 개체의 Where 절 확장 메서드 내에서 bool 작업을 사용할 때 몇 가지 문제가 있습니다. 첫 번째 예제는 where 절 확장 메서드로 이동해야하는 작업으로 Bool1을 사용하여 작동하는 것을 보여줍니다. 두 번째 예제는 변경 후 작동하지 않는 것입니다. Bool1은 완전히 무시되며 결과에 영향을주지 않습니다.Linq, Extension Method, Lambda Expressions 및 Bool 's
예 1 :
var results =
from a in context.aTable1
where a.Bool1 == false && a.Bool2 == false
select new
{
Column1 = a.Column1
Bool1 = a.Bool1
Bool2 = a.Bool2
};
results.Where(l => l. Column1.Contains(fooString));
예 2 :
var results =
from a in context.aTable1
where a.Bool2 == false
select new
{
Column1 = a.Column1
Bool1 = a.Bool1
Bool2 = a.Bool2
};
results.Where(l => l.Bool1 == false);
results.Where(l => l. Column1.Contains(fooString));
이들은 그러나 나는 그들이 내가 뭘하려고 오전 보여 희망, 간단한 예를 통해입니다. 확장 메서드는 다른 메서드에 있으며 원래 쿼리를 만들 때 수행 할 수없는 이유입니다.
results.Where(l => !l.Bool1);
results.Where(l => l.Bool1.Equals(false));
그들은 아무것도 같은 효과를 :
나는 절 곳과 같은 일을하고 다음과 같은 다른 방법을 시도했다.
DOH !!! 나는 바보 같은 느낌, 나는 그것을 할당 잊어 버린 것을 알지 못했다고 나는 믿을 수 없다. 도움을 주셔서 감사합니다. –