我有以下查询:
var rowData = companies.Select(
t => new CompanyDetail
{
CompanyID = t.Title,
Subjects = subjects.Count ( u => t.RowKey == "0000" + u.PartitionKey)
}).ToList();
public class CompanyDetail
{
[DisplayName("Company")]
public string CompanyID { get; set; }
[DisplayName("Subjects")]
public Int32 Subjects { get; set; }
}
查询输出如下所示:
CompanyID Subjects
1 2
2 4
3 1
但如果公司没有科目我就有问题。我想看看:
CompanyID Subjects
1 2
2 4
3 1
4 0
有没有办法可以将这个LINQ查询转换为外连接,这样它总能报告每个公司,然后计算通过行和partitionkey连接器连接的主题数量?
答案 0 :(得分:0)
如果不知道您正在使用哪种LINQ提供程序,很难回答这个问题 - 例如,您的查询将在LINQ to Objects中发挥作用。
也许值得尝试使用明确的GroupJoin
来说服提供商给你空组:
var rowData = from company in companies
join subject in subjects
on company.RowKey equals "0000" + subject.PartitionKey
into companySubjectGroup
select new
{
CompanyID = company.Title,
Subjects = companySubjectGroup.Count()
};