我对C#和LINQ很陌生,我正在尝试获取一系列电子邮件,其中包含电子邮件,附件和用户(发送电子邮件的人)的总和。
所以我当前的问题是我的查询输出是错误的。电子邮件的数量等于明显错误的附件数量。 我的查询:
var monthQuery = from em in dbEdoka.email
join ema in dbEdoka.email_attachment on em.id equals ema.email_id into e
from e2 in e.DefaultIfEmpty()
group e2 by em.erstellt_am.Month into grouped
select new Entities.Month
{
NameOfMonth = grouped.FirstOrDefault().erstellt_am.ToString(),
NumberOfMails = grouped.Distinct().Count(m => m.email_id != null).ToString(),
NumberOfAttachments = grouped.Count(a => a.id != null).ToString(),
NumberOfUsers = grouped.Select(u => u.erstellt_von).Distinct().Count().ToString()
};
months = monthQuery.ToList();
Months = CollectionViewSource.GetDefaultView(months);
正如您所看到的,我必须从 dbEdoka.email_attachment 中取 m.email_id 而不是 m.id 来自 dbEdoka。电子邮件因为它不可用(不知道为什么......)。 但我必须计算“NumberOfMails”,“NumberOfAttachments”和“NumberOfUsers”。
谢谢!