views:

59

answers:

2

I have the a simple LinqToSQL statement that is not working. Something Like this:

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

I look at _ctx.DBList in the debugger and the second item fits both parameters.

Is there a way I can dig into this more to see what is going wrong?

+1  A: 

I would split it into two steps -- the construction of the query, then the assignment to the list. That way you can look at the generated SQL in the debugger and see if it is correct. I sometimes cut/paste (and fix up) into SSMS when I have a query problem to debug.

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();
tvanfosson
+1  A: 

You basically have 2 options.

You can break the statement apart and look at what's produced at each step:

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

Or you can write your lambda expressions on different lines and put a breakpoint on it then iterate through your code with step in. You'll get a ton more information, but you most likely won't get anything more useful than the 2 arrays above (plus it might take a very long time to get to the actual error if any).

Blindy