Is there any way to write a LINQ (or procedural style) query, that can select an item and all children with one query? I have entity:
public class Comment {
Your comment class can be seen as a graph and your problem is a Graph traversal problem.
You can't really define recursive problems through linq, but the problem can very easily be resolved by a simple recursive method.