Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / linq orderby take (top) / 9 сообщений из 9, страница 1 из 1
05.05.2018, 13:55
    #39640620
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq orderby take (top)
начинаю изучать, так что не бейте

такой запрос как работает с БД MSSQL и прочими БД?
Код: c#
1.
2.
3.
4.
5.
6.
                var list = db.TmpMnuUsers.Select(p => new
                {
                    UserId = p.UserId,
                    Fam = p.Fam,
                    Ima = p.Ima
                }).OrderByDescending(p => p.Fam).Take(50); 



Запрос преобразуется в TOP 50
что-то вроде
Код: sql
1.
2.
3.
4.
5.
6.
7.
select top 50
      UserId,
      Fam,
      Ima
  from TmpMnuUsers
 order by Fam desc
 



или вся отсортированная коллекция тянется на клиента и там отбираются первые 50 записей?
...
Рейтинг: 0 / 0
05.05.2018, 13:58
    #39640621
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq orderby take (top)
andreymx,

требуется угадать, что такое db?

Если EF - то на сервере
...
Рейтинг: 0 / 0
05.05.2018, 13:59
    #39640622
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq orderby take (top)
Shocker.Proandreymx,

требуется угадать, что такое db?

Если EF - то на сервереEF
...
Рейтинг: 0 / 0
05.05.2018, 13:59
    #39640623
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq orderby take (top)
Лучше, конечно Order и Take воткнуть ДО проекции, чтобы потом не попасть при рефакторинге
...
Рейтинг: 0 / 0
05.05.2018, 14:00
    #39640624
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq orderby take (top)
andreymx,
Сервер даст 50 а не миллион.
а)
Проверьте на большой табле и убедитесь будет ли тормозить.
б) включите логирование галку и смотрите реальный запрос
...
Рейтинг: 0 / 0
05.05.2018, 14:02
    #39640625
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq orderby take (top)
Shocker.ProЛучше, конечно Order и Take воткнуть ДО проекции, чтобы потом не попасть при рефакторинге
+1
и проверить, действительно ли нужна проекция
...
Рейтинг: 0 / 0
05.05.2018, 14:08
    #39640631
andreymx
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq orderby take (top)
спасибо всем, буду пробовать
...
Рейтинг: 0 / 0
05.05.2018, 20:13
    #39640766
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq orderby take (top)
andreymxЗапрос преобразуется в TOP 50
что-то вроде
Код: sql
1.
2.
3.
4.
5.
6.
7.
select top 50
      UserId,
      Fam,
      Ima
  from TmpMnuUsers
 order by Fam desc
 




или вся отсортированная коллекция тянется на клиента и там отбираются первые 50 записей?

А что, по SQL запросу не видно? )))
...
Рейтинг: 0 / 0
05.05.2018, 20:36
    #39640772
Petro123
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
linq orderby take (top)
hVosttА что, по SQL запросу не видно? )))да его не понять. Вроде вопросительный в конце. Т.е. он думает что запрос такой будет).
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / linq orderby take (top) / 9 сообщений из 9, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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