В 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 для большего количества детали.
Используйте эти , Берут метод :
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
возвращаются.
Используйте Take(int n)
метод:
var q = query.Take(10);
Это хорошо работает в C#
var q = from m in MyTable.Take(10)
select m.Foo
Мне нравится это:
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
};
Взятие данных из базы данных без сортировки аналогично случайному извлечению
@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);
нет? результаты могут быть разными.