উত্তর:
ভিবিতে:
from m in MyTable
take 10
select m.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);
ভিবি লিনকিউতে একটি গ্রহণের মত প্রকাশ রয়েছে:
Dim foo = From t in MyTable _
Take 10 _
Select t.Foo
ডকুমেন্টেশন থেকে:
Take<TSource>
source
উপাদানগুলি ফলন নাcount
করা বাsource
কোনও উপাদান না থাকা পর্যন্ত উপাদানগুলি গণনা করে এবং ফল দেয় । যদিcount
উপাদানগুলির সংখ্যা ছাড়িয়ে যায় তবেsource
সমস্ত উপাদানগুলিsource
ফিরে আসে।
ওপি প্রকৃতপক্ষে অফসেটেরও উল্লেখ করেছে, তাই প্রাক্তন হিসাবে for আপনি যদি 30 থেকে 60 টি পর্যন্ত আইটেমগুলি পেতে চান তবে আপনি এটি করবেন:
var foo = (From t In MyTable
Select t.Foo).Skip(30).Take(30);
অফসেটের জন্য "এড়িয়ে যান" পদ্ধতিটি ব্যবহার করুন।
সীমাবদ্ধতার জন্য "নিন" পদ্ধতিটি ব্যবহার করুন।
@ জেনি: এখানে আমার প্রথম মন্তব্যটি আপনার নমুনা সম্পর্কে;)
আমি মনে করি আপনি যদি এটি করেন তবে আপনি 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
};
পুরো টিবিএল_নিউজকে আইডিনিউজকে সাজানো এবং তারপরে 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
};
গ্রহণটি ক্লায়েন্টের উপর বা ডিবিতে ঘটে কিনা আপনি কোথায় টেক অপারেটর প্রয়োগ করবেন তার উপর নির্ভর করে। আপনি যদি ক্যোয়ারীটি গণনার আগে এটি প্রয়োগ করেন (যেমন আপনি এটি পূর্বাঞ্চে ব্যবহার করার আগে বা এটি কোনও সংগ্রহে রূপান্তরিত করার আগে) নেওয়ার ফলে "শীর্ষ এন" এসকিউএল অপারেটরকে ডিবিতে প্রেরণ করা হবে। আপনি যদি এসকিউএল প্রোফাইলার চালনা করেন তবে এটি দেখতে পাবেন। আপনি যদি ক্যোয়ারী গণনা করার পরে গ্রহণটি প্রয়োগ করেন তবে তা ক্লায়েন্টের উপরেই ঘটবে, কারণ এটির মাধ্যমে গণনা করার জন্য লিনকিউ আপনাকে ডাটাবেস থেকে ডেটা উদ্ধার করতে হবে
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();
আমাকে টেক (এন) পদ্ধতিটি ব্যবহার করতে হবে, তারপরে তালিকায় রূপান্তরিত করুন, কবজির মতো কাজ করেছেন:
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();