回答:
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を参照してください。
Takeメソッドを使用します。
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
が返されます。
@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
};
idNewsでtbl_News全体をソートしてから4を取るのとは異なります
var dados = (from d in dc.tbl_News orderby d.idNews descending select new { d.idNews, d.titleNews, d.textNews, d.dateNews, d.imgNewsThumb }).Take(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
};
クライアントまたはデータベースでテイクが発生するかどうかは、テイク演算子を適用する場所によって異なります。クエリを列挙する前(つまり、foreachで使用する前、またはコレクションに変換する前)に適用すると、「上位n」のSQL演算子がデータベースに送信されます。SQLプロファイラーを実行すると、これを確認できます。クエリを列挙した後にテイクを適用すると、LINQはデータベースからデータを取得して列挙する必要があるため、クライアントで発生します。
並べ替えなしでデータベースのデータを取得することは、ランダムテイクと同じです。
Array oList = ((from m in dc.Reviews
join n in dc.Users on m.authorID equals n.userID
orderby m.createdDate descending
where m.foodID == _id
select new
{
authorID = m.authorID,
createdDate = m.createdDate,
review = m.review1,
author = n.username,
profileImgUrl = n.profileImgUrl
}).Take(2)).ToArray();
私はTake(n)メソッドを使用し、次にリストに変換する必要がありました。
var listTest = (from x in table1
join y in table2
on x.field1 equals y.field1
orderby x.id descending
select new tempList()
{
field1 = y.field1,
active = x.active
}).Take(10).ToList();
このように私にとってはうまくいきました:
var noticias = from n in db.Noticias.Take(6)
where n.Atv == 1
orderby n.DatHorLan descending
select n;
以下のためのlimit 1
使用方法FirstOrDefault()
やFirst()
。
例
var y = (from x in q select x).FirstOrDefault();