শীর্ষ পাঁচটি নির্বাচন করতে লিনকিউ ক্যোয়ারী


234

আমার একটি লিনকিউ প্রশ্ন রয়েছে:

var list = from t in ctn.Items
           where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
           orderby t.Delivery.SubmissionDate
           select t;

ডাটাবেস থেকে মাত্র পাঁচটি ফলাফল নির্বাচন করতে আমি কীভাবে এই ক্যোয়ারীটি সংশোধন করতে পারি?


(How_many_you_wish) দিক নিন
SNR

উত্তর:


437
var list = (from t in ctn.Items
           where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
           orderby t.Delivery.SubmissionDate
           select t).Take(5);

5
+1, তবে গাহ, বন্ধনীগুলিতে মাল্টলাইন এক্সপ্রেশনকে মোড়ানো এবং তারপরে পুরো লটটি ডি-রেফারেন্সিং কিছু কারণে সত্যই আমাকে কৃতজ্ঞ করে।
ডক্টর জোনস

6
এটি সমতা শর্তের সাথে মেলে হিসাবে ডাটাবেস থেকে অনেকগুলি ফলাফল নেবে বলে মনে হয় এবং এটি ডাটাবেস থেকে নেওয়ার পরেই এটি প্রয়োগের মধ্যে (5) বিধিনিষেধ প্রয়োগ করে। takeডাটাবেস থেকে আক্ষরিক অর্থে প্রথম 5 টি সারি করার কোনও উপায় আছে কি ?
জেএম হিক্স

6
@ জেএমহিক্স সত্যিই নয়। টেক (5) কমান্ডটি আইকুয়েরেবলের সাথে আরও একটি শর্ত যুক্ত করছে, যা আপনি এটি গণনা না করা পর্যন্ত কার্যকর হবে না। তবে, লিনকিউ সরবরাহকারীরা থাকতে পারে যারা টেক অপারেশনটিকে সমর্থন করে না।
ব্রুনো ব্রান্ট

1
@ জেএমহিক্স - লিনক যেভাবে কাজ করে না তা নয় ... লিনক অলস।
হোগান


19

লিন্ডার ল্যাম্বডা ভিত্তিক পদ্ধতি ব্যবহার করে এটিও অর্জন করা যেতে পারে;

var list = ctn.Items
.Where(t=> t.DeliverySelection == true && t.Delivery.SentForDelivery == null)
.OrderBy(t => t.Delivery.SubmissionDate)
.Take(5);

8

[চেয়ে কিছুটা বর্ণনামূলক উত্তর নৈবেদ্য উত্তর দ্বারা উপলব্ধ @Ajni ।]

এটি লিনকিউ ফ্লুয়েট সিনট্যাক্স ব্যবহার করেও অর্জন করা যেতে পারে :

var list = ctn.Items
    .Where(t=> t.DeliverySelection == true && t.Delivery.SentForDelivery == null)
    .OrderBy(t => t.Delivery.SubmissionDate)
    .Take(5);

নোট প্রতিটি পদ্ধতি ( Where, OrderBy, Take) এই LINQ বিবৃতিতে প্রদর্শিত হয় একটি লাগে যে ল্যামডা অভিব্যক্তি একটি আর্গুমেন্ট হিসাবে। এছাড়াও নোট করুন যে জন্য ডকুমেন্টেশন Enumerable.Takeশুরু:

একটি সিকোয়েন্সের শুরু থেকে একটি নির্দিষ্ট সংখ্যক জটিল উপাদান ফেরত দেয়।


5

Additional information

কখনও কখনও ভিউ মডেলগুলিতে কোনও মডেলকে আবদ্ধ করা এবং ধরণের রূপান্তর ত্রুটি দেওয়া প্রয়োজন । এই পরিস্থিতিতে আপনার ToList()পদ্ধতিটি ব্যবহার করা উচিত ।

var list = (from t in ctn.Items
       where t.DeliverySelection == true && t.Delivery.SentForDelivery == null
       orderby t.Delivery.SubmissionDate
       select t).Take(5).ToList();

0

বোধহয় আপনি বোধহয় সিক্যুয়াল স্ক্রিপ্টের মতো - > যেখানে-> নির্বাচন করুন সিক্যুয়েনটি থেকে অপরিচিত বোধ করতে পারেন, এটি নির্বাচন-> থেকে-> কোথায় like

তবে আপনি হয়ত জানেন না যে এসকিএল ইঞ্জিনের অভ্যন্তরে এটি ' থেকে-> যেখানে-> নির্বাচন করুন ' এর অনুক্রমের ক্ষেত্রেও বিশ্লেষণযোগ্য, এটি যাচাই করতে, আপনি একটি সাধারণ স্ক্রিপ্ট চেষ্টা করতে পারেন

select id as i from table where i=3

এবং এটি কাজ করবে না, কারণ ইঞ্জিন পার্স হবে কোথায় সামনে নির্বাচন , তাই এটি মধ্যে ওরফে জানবে না আমি যেখানে । এই কাজটি করতে, আপনি চেষ্টা করতে পারেন

select * from (select id as i from table) as t where i = 3
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.