Linq to SQL用分隔符追加多个记录

Mat*_*ser 4 .net c# linq-to-sql

对于问题的不良标题,如果它是重复的,请道歉.

我有两个数据库表:

Users                 Documents
-------               --------- 
ID                    ID
Name                  DocumentName
                      UserID
Run Code Online (Sandbox Code Playgroud)

说我有1条记录 Users

1, "bob" 
Run Code Online (Sandbox Code Playgroud)

和三个相关的记录 Documents

1, "Doc1", 1
2, "Doc2", 1
3, "Doc3", 1
Run Code Online (Sandbox Code Playgroud)

我想生成一个结果集:

1, "bob", "Doc1, Doc2, Doc3"
Run Code Online (Sandbox Code Playgroud)

我尝试过涉及合并多个结果集的各种事情但得到错误: Local sequence cannot be used in LINQ to SQL implementation of query operators except the Contains() operator.

我应该怎么做呢.

Mar*_*ell 5

或者:

  • 从服务器"按原样"获取列并在C#中执行concat
  • 写一个执行它的SP,然后通过LINQ调用SP

SP(接受@UserID)可以这样做:

DECLARE @txt varchar(max)
SET @txt = ''
SELECT @txt = @txt + [DocumentName] + ', '
FROM [Documents]
WHERE [UserID] = @UserID

SELECT [ID], [Name], @txt AS [Docs]
FROM [Users]
WHERE [ID] = @UserID
Run Code Online (Sandbox Code Playgroud)