【发布时间】:2019-08-03 17:15:10
【问题描述】:
我在linq-to-sql有一个查询如下:
var query = (from users in _context.Users
join consumers in _context.Consumers
on users.usersId equals consumers.consumerId
from clients in _context.Clients.Where(x => x.Id == users.Id).DefaultIfEmpty().Take(1)
where consumerId.Contains(consumers.consumerId)
select new UserConsumerDto
{
FirstName = users.FirstName,
LastName = users.LastName,
ClientName = clients.Name
}).ToList()
上面的查询返回了几行;这意味着一个用户可以有多个客户端。因此,我添加了Take(1),暂时只获得一个客户。
现在,当我删除 Take(1) 时,会返回几条记录。
我想通过用逗号分隔的用户在单个记录中添加客户端名称来避免这种情况。
例如:
User 1 | ClientA, ClientB
代替:
User 1 | Client A
User 1 | Client B
有人可以帮我实现吗?
【问题讨论】:
标签: c# sql linq linq-to-sql