I have a comments table which contains amongst other things the columns Id - the ID of the comment, Commenter_Id the ID of the user who posted it, and ParentComment_Id a self referencing foreign key. There are only two levels to the commenting, parents and sub comments. If a comment record has a ParentComment_Id of null, then it is a parent comment.
I'm trying to write an expression to delete all the comments for a user, but this is causing problems because of that self reference I mentioned earlier.
Take this records sample as an example of the problem:

User with ID 2 posted a comment, with an ID of 3. Because this was the parent comment it has a ParentComment_Id value of null. Later on, User with ID 1 responds to that comment with a sub-comment, creating comment 7 (there were other comments/subcomments between these two hence the Id increment jump).
I'm not able to delete Comment ID 3 because the sub comment, Comment ID 7, has a foreign key to it.
Currently my Entity Framework statement for trying to delete comments is as follows:
context.Comments.Where(x => x.Commenter.Id == user.Id).Delete();
But this gives me an exception because of the described problem.
I could probably fix this using a few foreach loops, but I was hoping there is an easier way like context.Cascade().Where(.... For those wondering the Delete() method is part of the EntityFramework.Extended package.