powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
17 сообщений из 17, страница 1 из 1
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38159032
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день. Не пойму почему такой код

Код: c#
1.
2.
3.
4.
5.
6.
7.
       
IEnumerable<Users> list = from u in sso.Users
                                              select u;
                
                    UserListModel udm  = new UserListModel();
                    udm.TotalPages = (int)Math.Ceiling((double)list.Count() / itemperpage);
                    list = list.Skip((page - 1) * itemperpage).Take(itemperpage).ToList();



Не выбирает на сервере ограниченое (itemperpage) кол-во пользователей, профайлером ловлю такой запрос.!!

Код: sql
1.
2.
3.
4.
5.
SELECT 
[Extent1].[UserID] AS [UserID], 
....

FROM [dbo].[Users] AS [Extent1]



Вроде бы должно же. Спасибо.
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38159229
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Потому, что вы уже все выбрали этой строчкой
Код: c#
1.
IEnumerable<Users> list = from u in sso.Users select u;



Поменяйте на
Код: c#
1.
IQueryable<Users> list = from u in sso.Users select u;
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38159418
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buser,

(double)list.Count() - это заствляет запрос исполнится, не верьте бузеру
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38159443
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да пофиг...
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38159506
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pationbuser,

(double)list.Count() - это заствляет запрос исполнится, не верьте бузеру

там
Код: c#
1.
(double)list.Count() / itemperpage



buserПотому, что вы уже все выбрали этой строчкой
Код: c#
1.
IEnumerable<Users> list = from u in sso.Users select u;



Поменяйте на
Код: c#
1.
IQueryable<Users> list = from u in sso.Users select u;



Спасибо
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38159521
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.: Andrey1306, но pation таки прав, хоть в вашем случае это роли и не играет.
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38159574
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buserP.S.: Andrey1306, но pation таки прав, хоть в вашем случае это роли и не играет.

Вы об этом тут
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38160317
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.P.S.: Проклятые комплексы... По поводу моего последнего поста. Да прав, но в одном - первый запрос происходит по Count. А так - IEnumerable всю "малину" портит... и мы получаем серию говнозапросов вместо ожидаемых няшек...
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38160439
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buserP.P.S.: Проклятые комплексы... По поводу моего последнего поста. Да прав, но в одном - первый запрос происходит по Count. А так - IEnumerable всю "малину" портит... и мы получаем серию говнозапросов вместо ожидаемых няшек...

Как "няшки" получить ?
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38162264
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buserПотому, что вы уже все выбрали этой строчкой
Код: c#
1.
IEnumerable<Users> list = from u in sso.Users select u;




Поменяйте на
Код: c#
1.
IQueryable<Users> list = from u in sso.Users select u;



эти два куска кода, в плане когда выполнится запрос, ничем не отличаются
в довесок добавлю ещё такой:

Код: c#
1.
var list = from u in sso.Users select u;
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38162423
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pation, эти два куска ни чего не выполняют
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38164682
Фотография pation
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buserpation, эти два куска ни чего не выполняют
читай лучше
pationэти два куска кода, в плане когда выполнится запрос , ничем не отличаются
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38164887
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
partion, да... различия появляются только при выполнении Count и Skip + Take... Вы обратили внимание на что сетует топикстартер?
Я вполне доверяю вашему опыту... может вы поясните... почему в одном случае уходит оптимизированный запрос ("по возможности"), а в другом select * from и весь остальной процессинг делается на клиенте? Может это баг ранних версий? :) а довесок, к сожалению вообще "не в красную армию" :)
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38165706
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а меня можно просветить , что не так то ?
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38166134
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey1306, можете сами поковырять, а можете поискать что почитать IEnumerable vs IQueryable
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38166304
Andrey1306
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
buserAndrey1306, можете сами поковырять, а можете поискать что почитать IEnumerable vs IQueryable

По поводу выполнения на сервере и в памяти я понял свою ошибку, я не понял следующее:

"а довесок, к сожалению вообще "не в красную армию" :)" тут
...
Рейтинг: 0 / 0
EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
    #38166373
Фотография buser
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Andrey1306, про довесок - забейте... В контексте данного (вами же примера) он ни чего не доказывал/опровергал/иллюстрировал...
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / EntityFramework + Постраничная выборка, (ToTake(30)не срабатывает )
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]