【问题标题】:Is there a "for xml path" equivalent in LINQ to SQL?LINQ to SQL 中是否有等效的“for xml 路径”?
【发布时间】:2010-01-02 06:00:02
【问题描述】:

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

我想将博客条目的标签汇总为逗号分隔的字符串,以便在同一结果集中返回。这就是我在 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

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

【问题讨论】:

标签: c# sql linq-to-sql


【解决方案1】:

这是 LINQ to SQL 大放异彩的情况之一。

此代码应保留在数据库中 - 它将更容易维护,并且很可能会在那里执行得更好。您是否有特别的原因想要将此工作代码移出数据库并移入您的应用程序代码?如果由我决定,我会将这段代码留在原处。

【讨论】:

  • 我继承了一个 SQL2000 博客数据库,并试图模仿我自己的 sql2005 服务器上的一些查询。 SQL2000 不支持“for xml 路径”,所以我想我可以使用 LINQ to SQL 来填补这个空白。
猜你喜欢
  • 1970-01-01
  • 2022-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多