Entity Framework 4: Что заставляет .Take (10) возвращать 20 записей? - PullRequest
2 голосов
/ 08 декабря 2010

Я полагаю, что делаю следующее:

 var myQuery = Products.Where( p => p.deptid = 3);
 var myCount = Products.Count();
 var myResult = myQuery.OrderBy( p => p.deptname).Skip(10).Take(10);
 //then return an object with a count property and a List<Product> property.

Иногда это возвращает удвоенную сумму взятия.

В моем решении есть несколько уровней, а именно: Репозиторий и Сервисслой.Я почти уверен, что я не упорядочиваю, не пропускаю и не беру в своем хранилище, и это код уровня сервиса.Что может привести к тому, что myResult будет иметь более 10 записей, когда я беру 10 записей?

1 Ответ

1 голос
/ 14 декабря 2010

Я вполне уверен, что я сделал OrderBy (), а затем сделал другой OrderBy (). Skip (). Take ().Skip (). Take (), вероятно, использовал внутренний идентификатор для выбора записей.

Я прошел все уровни приложения, чтобы убедиться, что только один OrderBy (). Skip (). Take () произошел, и все былоисправлено.

Однако я не могу воссоздать проблему, чтобы спасти мою жизнь.Я не знаю, было ли это решением проблемы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...