在LINQ to SQL中是否存在“for xml path”等价物?

我有一个博客条目表,一个标签表,以及一个将标签与博客条目相交的表。

我想将博客条目的标记汇总到逗号分隔的字符串中,以便在同一结果集中返回。 这就是我在SQL中的表现:

select     be.Title     ,Tags = lower((         select             stuff((                 select distinct                     ',' + bc.Category                 from                        BlogEntryCategory bec                     join BlogCategory bc on bc.BlogCategory_ID = bec.BlogCategory_ID                 where    bec.BlogEntry_ID = be.BlogEntry_ID                 for xml path('')),1,1,'')                )     ) from BlogEntry be 

我正在使用xml路径来滚动我的标签,我正在寻找使用LINQ执行此操作的等效方法。

这是LINQ to SQL 没有发光的情况之一。

此代码应留在数据库中 – 它将更容易维护,并且很可能在那里表现更好。 您是否有特殊原因希望将此工作代码移出数据库并移至应用程序代码中? 如果由我决定,我会将此代码保留在原来的位置。