var Found = from o in Orders where o.CustomerID == 84 && o.Cost > 100 select new { o.OrderID, o.Cost, CostWithTax = o.Cost * 1.1Now, let's assemble it as standard SQL
var Found = select new { o.OrderID, o.Cost, CostWithTax = o.Cost * 1.1 from o in Orders where o.CustomerID == 84 && o.Cost > 100So, as you're typing this in, you type
var Found = select new { o.At this point, Intellisense has NO IDEA what o will refer to. How is it supposed to know that you mean Orders? No possible way it can figure that out with any good assurity. Sure, it can look through your code and see that Orders starts with O and guess, but what if you have 10 or 20 objects in your code that all start with O? Or even with 2 or 3, it starts to get confusing. And what if Orders isn't defined yet? Then what is it supposed to do? I'm using a simplified case here. It's really more complex than I can explain.