我很好奇为什么我的linq按组查询返回了417个结果,而我的SQL解释返回了419个?我正在寻找列表中的重复电子邮件。我已经检查了结果集,从linq集中缺失的两个电子邮件地址都带有重音符号。Linq不能识别重音符号吗?是否有解决方法?电子邮件字段类型是nvarchar(100)。
如有任何问题,请告知,谢谢!
如有任何问题,请告知,谢谢!
var listOfContacts = (from contacts in something
where contacts.Team.Id.Equals(TeamGuid) && !contacts.Email.Equals(null)
select new {contacts.Id, EmailAddress = contacts.Email.ToLower()}).ToList();
//Full Contact List; exact amount matches
var dupeEmailsList = listOfContacts
.GroupBy(x => x.EmailAddress)
.Where(g => g.Count() > 1)
.Select(y => y.Key)
.ToList();
//Returns 417
SELECT Email, COUNT(*)
FROM something
WHERE Team = 'Actual Team Guid Inserted Here'
GROUP BY Email
HAVING (COUNT(LOWER(Email)) > 1 AND Email IS NOT NULL)
ORDER BY Email
//Returns 419
ToList
并执行ToString
以查看SQL,或者使用LINQPad或调试SQL引擎。您的SQL是否可能返回两行具有NULL
电子邮件地址? - NetMageToLower()
会发生什么? - sgmoore