어떻게해야합니까
Select top 10 Foo from MyTable
Linq에서 SQL로?
답변
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
반환됩니다.
답변
Take(int n)
방법을 사용하십시오 :
var q = query.Take(10);
답변
OP는 실제로 예를 들어 오프셋을 언급했습니다. 30에서 60 사이의 항목을 가져 오려면 다음을 수행하십시오.
var foo = (From t In MyTable
Select t.Foo).Skip(30).Take(30);
오프셋에는 “건너 뛰기”방법을 사용하십시오.
“Take”방법을 사용하여 제한하십시오.
답변
@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);
아니 ? 결과가 다를 수 있습니다.
답변
이것은 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
};