Como converter dados hierárquicos do banco de dados em XML usando o ASP.net 3.5 e o LINQ

Eu tenho uma tabela com estrutura hierárquica. como isso:
texto alternativo http://aspalliance.com/ArticleFiles/822/image002.gif

e dados da tabela mostrados aqui:
texto alternativo http://aspalliance.com/ArticleFiles/822/image003.gif
essa estratégia me dá a capacidade de ter categorias e subcategorias ilimitadas.

Eu uso o ASP.net 3.5 SP1 e LINQ e MSSQL Server2005.Como convertê-lo em XML? Eu posso fazer isso comObjeto do conjunto de dados e ".GetXML ()"método. mas como implementá-lo com LINQtoSQL ou LINQtoXML ??? ou se houver outra maneira mais simples de executar isso? qual é a sua sugestão? a melhor maneira? Pesquisei na web, mas não encontrei nada para os .net 3.5 featuers.

Pergunta Update
Obrigado a Murph, mas agora tenho um novo problema. Quero criar um arquivo Dunamic SiteMap no meu projeto. Você sabe que o arquivo SiteMap no ASP.net se parece com o seguinte:

<siteMapNode url="~/Category?cid=0" title="Home"  description="Home">

    <siteMapNode url="~/Category?cid=1" title="a"  description="" />

    <siteMapNode url="~/Category?cid=2" title="b"  description="" >

        <siteMapNode url="~/Category?cid=3" title="c"  description="" />

        <siteMapNode url="~/Category?cid=4" title="d"  description="" />

    </siteMapNode>
</siteMapNode>

O principal problema é que, de acordo com o código do Sr.Murph, as subcategorias serão aninhadas no elemento. mas no SiteMap Case não temos esses elementos e todas as categorias e subcategorias estão aninhadas em elementos. como posso alterar o código Mr.Murph para moldar esse esquema?

questionAnswers(2)

yourAnswerToTheQuestion