У меня действительно странная проблема, когда мой запрос структуры сущностей не перечисляется правильно.
В таблице SQL Server, которую я использую, есть таблица с полем Sku, а столбец «отличный». Это не ключ, но он не содержит повторяющихся значений. Используя фактический SQL с where
, distinct
и group by
ключами, я подтвердил это.
Однако, когда я делаю это:
// Not good
foreach(var product in dc.Products)
или
// Not good
foreach(var product in dc.Products.ToList())
или
// Not good
foreach(var product in dc.Products.OrderBy(p => p.Sku))
первые два объекта, которые возвращаются ТО ЖЕ ВРЕМЯ !!!
Третий элемент был технически вторым элементом в таблице, но затем четвертый элемент снова был первым рядом с таблицей !!!
Единственное решение, которое я нашел, - это использовать метод расширения Distinct, который не должен ничего делать в этой ситуации:
// Good
foreach(var product in dc.Products.ToList().Distinct())
Еще одна странная вещь по этому поводу состоит в том, что количество результирующих запросов одинаково !!! Так, независимо от того, имеет ли результирующее перечисляемое значение правильные результаты или дубликаты, я всегда получаю количество строк в фактическая таблица! (Нет, у меня нигде нет предельного предложения).
Что могло вызвать это!?!?!?