پیاده سازی Case به روایت LINQ

Linq

بر حسب موارد مطروحه لازم دیدم یه مثال ساده از چگونگی پیاده سازی ساختار Case که در زبان TSQL مورد کاربرد قرار میگیره رو به شکل LINQ داشته باشیم.

برای همین یک سناریو رو با هم دنبال خواهیم کرد.

1: جدول اطلاعات و نمرات دانشجویان را به شرح زیر می سازیم.

2: گزارش خود را مثال کد زیر به شکلی می نویسیم که با استفاده از دستور Case برحسب مقدار ستون grade نتایج متفاوتی را برای کاربر محیا سازد.

   1: -- ساخت جدول
   2: create table student(
   3: id int identity(1,1) primary key,
   4: first_name nvarchar(120) not null,
   5: last_name nvarchar(120) not null,
   6: grade tinyint null)
   7:  
   8: -- گزارش
   9: select first_name N'نام',last_name N'نام خانوادگی', case grade
  10: when 1 then  N'دبستان'
  11: when 2 then  N'راهنمایی'
  12: when 3 then  N'دبیرستان'
  13: when 4 then  N'دانشگاه'
  14: End AS N'مقطع تحصیلی'
  15: from student

نهایتا کد LINQ مورد نیاز شما که دقیقا نتیجه ای معادل کر TSQL گزارش فوق را برگرداند اینچنین خواهد بود.

   1: from c in StudentsDT
   2: select new
   3:         {
   4:           c.first_name,
   5:           c.last_name,
   6:           grade= c.grade == 1 ? "دبستان" : 
   7:           c.Temperature ==  2 ? "راهنمایی" :
   8:           c.Temperature ==  3 ? "دبیرستان" :
   9:           c.Temperature ==  4 ? "دانشگاه" : ""
  10:         }

دیدگاهتان را بنویسید