دسته بندی ها
14:57 1400/07/02

آموزش استفاده از متد Except در انتیتی فریم ورک Linq

مشخصات سوال کننده :
کاربر : hamdola     امتیاز کاربر : 121     رتبه کاربر : 12
دسته بندی : سی شارپ Entity Framework

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 2672
پاسخ دهنده : saedbfd 19:57 1400/07/02

نحوه استفاده از متد Except در انتیتی فریم ورک و Linq

دقت کنید که متد Except یک آرایه در خروجی خواهد داشت بنابراین بهتر است به این صورت استفاده کنید :

var AbsentStudent = AllStudent.Except(PresentStudent).ToArray();

همانطوری که می بینید از متد ToArray استفاده کردیم. با توجه به اینکه کدهایی که شما نوشتید کمی ابهام آمیز هست توضیحات و مثال های بیشتری برای کار با متد Except بهتون میگم.

  • فرض کنید که شما لیست همه دانش آموزان یک کلاس رو میخواید داشته باشید. خب به صورت زیر این لیست رو میتونید تهیه کنید :
//لیست همه دانش آموزان
var AllStudent = _context.Student_Tbl.ToList();
  • حالا لیست دانش آموزان حاضر در کلاس رو میخواید داشته باشید. خب این لیست رو هم به راحتی با کد بالا میتونید داشته باشید. (مطابق با کد خودتون)
//لیست دانش آموزان حاضر
var PresentStudent = _context.Student_Tbl.Where(s => s.IsOnline == true).ToList();
  • در مرحله بعد شما لیست غایبین رو میخواید. یعنی لیست همه دانش آموزان به جز کسانی که حاضر هستند. در این جا چون "به جز" هست می تونیم از متد Except استفاده کنیم. اما دقت کنید برای استفاده از متد Except بهتر هست روی یک فیلد خاص شرط رو اعمال کنید. مثلا لیست ID های همه دانش آموزان رو داشته باشیم و بگیم به جز لیست ID های دانش آموزان حاضر. در واقع کوئری نهایی شما به صورت زیر میشه :
//لیست همه دانش آموزان
var AllStudent = _context.Student_Tbl.ToList();

//لیست دانش آموزان حاضر
var PresentStudent = _context.Student_Tbl.Where(s => s.IsOnline == true).ToList();

//لیست دانش آموزان غایب ولی مشکل داره
var AbsentStudent = AllStudent.Select(s1 => s1.ID).Except(PresentStudent.Select(s2 => s2.ID)).ToArray();
ویرایش شده در جمعه 2 مهر 1400 ساعت 20:11:27
به این پاسخ امتیاز بدهید    2
امتیاز: 1654 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود