Во время разработки приложения с LINQ to SQL я обнаружил, что когда хранимая процедура возвращает несколько отдельных строк с одним и тем же первичным ключом, тогда LINQ сделает объект полного списка одинаковым. Например, если у меня есть следующая таблица,
ID Name Salary
-- ---- -----
1 A 20
2 B 200
3 C 30
4 D 520
и моя хранимая процедура возвращает все строки, кроме одного и того же первичного ключа,
ID Name Salary
-- ---- -----
1 A 20
1 B 200
1 C 30
1 D 520
, тогда linq свяжет эти строки как,
ID Name Salary
-- ---- -----
1 A 20
1 A 20
1 A 20
1 A 20