一尘不染

LINQ中是否有等效于SQL的“或xml路径”?

sql

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

我想将博客条目的标签汇总到以逗号分隔的字符串中,以在同一结果集中返回。这是我在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进行此操作的等效方法。


阅读 113

收藏
2021-05-23

共1个答案

一尘不染

这是那些LINQ to SQL的不情形之一 亮。

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

2021-05-23