> because it is modeled on SQL
And that's the problem - you have a very Java-like syntax for the rest of C# with intrusions of SQL-like syntax. I'm not sure it's a good idea.
A solution more like the comprehensions you find in functional languages would probably be neater and more flexible.