Other than using profiler, is there a way to view the sql that linq-to-sql produces?
You can use the Log property on the DataContext to write out what the SQL is. This takes a TextWriter and is pretty easy to use. If you need an example I can provide you one.
DataContext Log