在我的应用程序中,一家公司可以有很多员工,每个员工可能有多个电子邮件地址。
数据库模式将这些表关联起来,如下所示:
公司 -> 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 + ",")
}
期望的输出:
"公司 1", "a@company1.com,b@company1.com,c@company1.com"
"公司 2", "a@company2.com,b@company2.com,c@company2.com"
...
我知道这段代码是错误的,我想我错过了一个 group by,但它说明了这一点。我不确定语法。这甚至可能吗?谢谢你的帮助。