मैं यह कैसे करु
Select top 10 Foo from MyTable
Linq में SQL के लिए?
मैं यह कैसे करु
Select top 10 Foo from MyTable
Linq में SQL के लिए?
जवाबों:
VB में:
from m in MyTable
take 10
select m.Foo
यह मानता है कि MyTable ने IQueryable को लागू किया है। आपको DataContext या किसी अन्य प्रदाता के माध्यम से एक्सेस करना पड़ सकता है।
यह भी मानता है कि फू माईटेबल में एक कॉलम है जो एक संपत्ति के नाम पर मैप हो जाता है।
अधिक विवरण के लिए 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
वापस आ जाते हैं।
@ ज्ञानी: यहाँ मेरी पहली टिप्पणी आपके नमूने के बारे में है;)
मुझे लगता है कि अगर आप ऐसा करते हैं, तो आप 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 उतरते हुए और फिर 4 लेते हुए पूरे tbl_News को छाँटने से अलग
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
};
चाहे टेक क्लाइंट पर होता है या डीबी पर निर्भर करता है कि आप टेक ऑपरेटर को कहां लगाते हैं। यदि आप क्वेरी को गणना करने से पहले इसे लागू करते हैं (यानी इससे पहले कि आप इसे फ़ॉर्वर्ड में उपयोग करें या इसे एक संग्रह में परिवर्तित करें) तो परिणाम "शीर्ष n" SQL ऑपरेटर db को भेजा जाएगा। यदि आप 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();
मुझे टेक (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();