2010-03-16 3 views
2

작동하지 않는 간단한 LinqToSQL 문이 있습니다. 뭔가 이런 식으로 :Visual Studio 디버거에서 Lambdas보기

List<MyClass> myList = _ctx.DBList 
    .Where(x => x.AGuidID == paramID) 
    .Where(x => x.BBoolVal == false) 
    .ToList(); 

디버거에서 _ctx.DBList를보고 두 번째 항목은 두 매개 변수에 모두 맞습니다.

내가 더 자세히 조사 할 수있는 방법이 있습니까?

답변

1

두 단계로 나눌 것입니다. 쿼리의 구성과 목록에 대한 할당입니다. 그렇게하면 디버거에서 생성 된 SQL을보고 올바른지 확인할 수 있습니다. 내가 때로는 잘라 내기/붙여 넣기 (그리고 수정) SSMS로 디버깅 할 때 쿼리 문제가있다.

var q = _ctx.DBList 
    .Where(x => x.AGuidID == paramID) 
    .Where(x => x.BBoolVal == false) 
// view q in the debugger to see the SQL it will generate 
var myList = q.ToList(); 
1

기본적으로 두 가지 옵션이 있습니다.

당신은 떨어져 문을 중단하고 각 단계에서 생산 있는지 볼 수 있습니다 :

var p1 = _ctx.DBList.Where(x => x.AGuidID == paramID).ToList(); 
var p2=p1.Where(x => x.BBoolVal == false).ToList(); 
// and you just examine each of them in the debugger 
// I put ToList() here so you get the actual result 

또는 당신은 다른 라인에 람다 표현식을 작성하고 다음 단계로 코드를 반복 거기에 중단 점을 넣을 수 있습니다 더 많은 정보를 얻을 수는 있지만 위의 2 개 배열보다 더 유용한 것이 없을 것입니다 (실제 오류가 발생하는 데는 오랜 시간이 걸릴 수 있습니다).

관련 문제