在我的应用程序中,公司可以有许多员工,每个员工可能有多个电子邮件地址。将子查询作为逗号分隔值的Linq查询
数据库架构涉及像这样的表:
公司 - > CompanyEmployeeXref - >员工 - > EmployeeAddressXref - >电子邮件
我使用实体框架和我想创建一个LINQ查询返回公司的名称以及员工电子邮件地址的逗号分隔列表。下面是我在尝试查询:
from c in Company
join ex in CompanyEmployeeXref on c.Id equals ex.CompanyId
join e in Employee on ex.EmployeeId equals e.Id
join ax in EmployeeAddressXref on e.Id equals ax.EmployeeId
join a in Address on ax.AddressId equals a.Id
select new {
c.Name,
a.Email.Aggregate(x=>x + ",")
}
Desired Output:
"Company1", "[email protected],[email protected],[email protected]"
"Company2", "[email protected],[email protected],[email protected]"
...
我知道这个代码是错误的,我想我错过了分组,但是它说明了这一点。我不确定语法。这甚至有可能吗?谢谢你的帮助。
我有一些代码可以做到这一点,但它会为您的案例中的每家公司执行一个新的批处理。我会明天发布,除非有人有更好的建议。 – 2010-05-18 21:18:34