সত্তা ফ্রেমওয়ার্ক স্বতন্ত্র নাম নির্বাচন করে


উত্তর:


271

ল্যাম্বদা এক্সপ্রেশন ব্যবহার করে ..

 var result = EFContext.TestAddresses.Select(m => m.Name).Distinct();

1
সম্ভবত একটি ডিফট প্রশ্ন, কিন্তু এটি কি সি # কোড স্তরে সমস্ত ঠিকানা ফেরত দেয় এবং তারপরে সেগুলি ফিল্টার করে, বা এটি কেবল অনন্য মানগুলি ফেরত দিতে ডাটাবেস সার্ভারে উপযুক্ত ক্যোয়ারীটি পাস করে?
ডিএ

51

এটা চেষ্টা কর:

var results = (from ta in context.TestAddresses
               select ta.Name).Distinct();

এটি আপনাকে একটি দেবে IEnumerable<string>- আপনি .ToList()এটি পেতে কল করতে পারেন List<string>


1
এইভাবে গ্রুপিংয়ের চেয়ে ভাল পারফরম্যান্স পান। পার্থক্য: এসকিউএল সার্ভার এক্সিকিউশন টাইমস: সিপিইউ সময় = 0 এমএস, অতিবাহিত সময় = 50 এমএস। গোষ্ঠীকরণ: এসকিউএল সার্ভার এক্সিকিউশন টাইমস: সিপিইউ সময় = 0 এমএস, অতিবাহিত সময় = 112 এমএস।
আন্দ্রে মেন্ডোনকা

24

উপায় যে @alliswell দেখিয়েছেন সম্পূর্ণরূপে বৈধ, এবং সেখানে অন্য উপায়! :)

var result = EFContext.TestAddresses
    .GroupBy(ta => ta.Name)
    .Select(ta => ta.Key);

আমি আশা করি এটি কারও কাজে লাগবে।


1
এটি আমার পক্ষে খুব উপকারী যেহেতু আমার একাধিক কলামগুলি নির্বাচন করা দরকার ছিল
mamashare

16
DBContext.TestAddresses.Select(m => m.NAME).Distinct();

আপনার যদি একাধিক কলাম থাকে তবে:

DBContext.TestAddresses.Select(m => new {m.NAME, m.ID}).Distinct();

এই উদাহরণে কোনও সদৃশ ক্যাটাগরিআইড এবং কোনও বিভাগের নাম নেই আশা করি এটি আপনাকে সহায়তা করবে


4

সত্তা-ফ্রেমওয়ার্ক পৃথক নাম নির্বাচন করুন:

মনে করুন আপনি যদি এমন ভিউ ব্যবহার করছেন যা আপনি একাধিক সারণী ব্যবহার করছেন এবং আপনি যদি সেই ক্ষেত্রে স্বতন্ত্র প্রয়োগ করতে চান তবে আপনাকে প্রথমে ভেরিয়েবলের মান সংরক্ষণ করতে হবে এবং তারপরে আপনি এই পরিবর্তকের মতো ডিস্টিনেক্ট প্রয়োগ করতে পারেন ....

public List<Item_Img_Sal_VIEW> GetItemDescription(int ItemNo) 
        {
            var Result= db.Item_Img_Sal_VIEW.Where(p => p.ItemID == ItemNo).ToList();
            return Result.Distinct().ToList();
        }

অথবা আপনি এই সহজ উদাহরণ চেষ্টা করতে পারেন

Public Function GetUniqueLocation() As List(Of Integer)
          Return db.LoginUsers.Select(Function(p) p.LocID).Distinct().ToList()
End Function

হাই, আমি যখন কোনও টেবিলে এটি করি, তখন আমি একটি ত্রুটি পেয়েছি -> স্ট্রিংটিকে আইমনুমারেবলে রূপান্তর করতে পারি না .. আপনি কীভাবে একটি তালিকা পেতে পারেন তা আমাকে দেখাতে পারেন যাতে আমি একটি ড্রপ ডাউন তালিকা পপুলেশন করতে পারি, যাতে এনভিআর্কার সংযুক্ত একটি টেবিল কলাম থেকে আলাদা মান রয়েছে with ইএফ ডিবিতে।
আক্রমণাত্মক


2

ORDER BY items must appear in the select list if SELECT DISTINCTত্রুটি এড়ানোর জন্য , সর্বোত্তম হওয়া উচিত

var results = (
    from ta in DBContext.TestAddresses
    select ta.Name
)
.Distinct()
.OrderBy( x => 1);

1

সত্তা-ফ্রেমওয়ার্ক পৃথক নাম নির্বাচন করুন:

মনে করুন আপনি যদি প্রতিটি গ্রুপের নির্দিষ্ট কলামের প্রতিটি প্রথম ডেটা চান;

 var data = objDb.TableName.GroupBy(dt => dt.ColumnName).Select(dt => new { dt.Key }).ToList();

            foreach (var item in data)
            {
                var data2= objDb.TableName.Where(dt=>dt.ColumnName==item.Key).Select(dt=>new {dt.SelectYourColumn}).Distinct().FirstOrDefault();

               //Eg.
                {
                       ListBox1.Items.Add(data2.ColumnName);                    
                }

            }
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.