بر حسب موارد مطروحه لازم دیدم یه مثال ساده از چگونگی پیاده سازی ساختار 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: }