我很好奇為什么我的 linq group by query 返回 417 結(jié)果而我的 SQL 解釋返回 419?我正在從我的列表中尋找重復的電子郵件。我檢查了結(jié)果集,并且 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 matchesvar dupeEmailsList = listOfContacts .GroupBy(x => x.EmailAddress) .Where(g => g.Count() > 1) .Select(y => y.Key) .ToList();//Returns 417SELECT Email, COUNT(*)FROM somethingWHERE Team = 'Actual Team Guid Inserted Here'GROUP BY EmailHAVING (COUNT(LOWER(Email)) > 1 AND Email IS NOT NULL)ORDER BY Email//Returns 419
3 回答

慕的地6264312
TA貢獻1817條經(jīng)驗 獲得超6個贊
由于 .ToList() 在您的第一個 LINQ 表達式中,GROUP BY 正在 C# 中對 Email.ToLower() 的結(jié)果執(zhí)行
這與您提供的 SQL 查詢完全不同,其中 GROUP BY 在原始 EMAIL 列上執(zhí)行,沒有 ToLower()。查詢返回不同的結(jié)果并不奇怪。
- 3 回答
- 0 關注
- 176 瀏覽
添加回答
舉報
0/150
提交
取消