Что Linq к SQL, эквивалентному TOP или ПРЕДЕЛУ/СМЕЩЕНИЮ?

192
задан Craig Ringer 20 March 2013 в 15:09
поделиться

8 ответов

В VB:

from m in MyTable
take 10
select m.Foo

Это предполагает, что тот MyTable реализует IQueryable. Вам, вероятно, придется получить доступ к этому через DataContext или некоторого другого поставщика.

Это также предполагает, что Foo является столбцом в MyTable, который отображается на имени свойства.

См. http://blogs.msdn.com/vbteam/archive/2008/01/08/converting-sql-to-linq-part-7-union-top-subqueries-bill-horst.aspx для большего количества детали.

143
ответ дан AaronLS 23 November 2019 в 05:29
поделиться

Используйте эти , Берут метод :

var foo = (from t in MyTable
           select t.Foo).Take(10);

В VB LINQ имеет выражение взятия:

Dim foo = From t in MyTable _
          Take 10 _
          Select t.Foo

Из документации:

Take<TSource> перечисляет source и приводит к элементам до count, к элементам привели, или source не содержит больше элементов. Если count превышает число элементов в source, все элементы source возвращаются.

248
ответ дан John Cummings 23 November 2019 в 05:29
поделиться

Используйте Take(int n) метод:

var q = query.Take(10);
33
ответ дан Tim Cooper 23 November 2019 в 05:29
поделиться

Вы использовали бы Взятие (N) метод.

3
ответ дан FlySwat 23 November 2019 в 05:29
поделиться

Это хорошо работает в C#

var q = from m in MyTable.Take(10)
        select m.Foo
5
ответ дан 23 November 2019 в 05:29
поделиться

Мне нравится это:

 var dados =  from d in dc.tbl_News.Take(4) 
                orderby d.idNews descending

                select new 
                {
                    d.idNews,
                    d.titleNews,
                    d.textNews,
                    d.dateNews,
                    d.imgNewsThumb
                };
4
ответ дан 23 November 2019 в 05:29
поделиться

Взятие данных из базы данных без сортировки аналогично случайному извлечению

2
ответ дан 23 November 2019 в 05:29
поделиться

@Janei: мой первый комментарий здесь о вашем образце;)

Я думаю, если вам это нравится, вы захотите взять 4, а затем применить сортировку к этим 4.

var dados =  from d in dc.tbl_News.Take(4) 
                orderby d.idNews descending
                select new 
                {
                    d.idNews,
                    d.titleNews,
                    d.textNews,
                    d.dateNews,
                    d.imgNewsThumb
                };

В отличие от сортировки целых tbl_News по idNews по убыванию и затем берет 4

 var dados = (от d в dc.tbl_News
orderby d.idНовости по убыванию
выберите новый
 {
d.idNews,
d.titleNews,
d.textNews,
d.dateNews,
d.imgNewsThumb
 }). Возьмем (4);

нет? результаты могут быть разными.

13
ответ дан 23 November 2019 в 05:29
поделиться
Другие вопросы по тегам:

Похожие вопросы: