使用linq将逗号分隔的列表放入列中

use*_*777 2 c# linq asp.net linq-to-sql

我有两个表,它们之间有一对多的关系,并希望执行一个linq查询,该查询将从多个表中获取值,并从连接到每个记录的值中生成一个逗号分隔的列表.其他表.我可以使用"stuff"函数和"for xml path"函数在sql中执行此查询.例如,假设我有以下表结构:

1)区
列:id,名称
2)存储
列:id,name,districtid

现在假设我想生成一个查询以返回以下列:district.id,district.name,stores(与该区域关联的以逗号分隔的商店列表)

如何通过linq实现这一目标?

在一个查询中,我想在没有任何for循环的情况下执行此操作.

Rub*_*ben 5

其他答案考虑到您有导航属性.在这种情况下,您应该查看其他答案,因为在这种情况下,其他答案要简单得多.

var result = 
     from d in Districts
     // gets all the store names in this district
     let st = Stores.Where(s => s.DistrictId == d.Id).Select(s => s.Name)
     select new { Name = d.Name, Id = d.Id, Stores = string.Join(",", st) }
Run Code Online (Sandbox Code Playgroud)