جایگزین کردن LINQ به جای روش های سنتی
LINQ برای از بین بردن کاستی هایی است که در پرس و جو های قبلی دیدیم. به جای آنکه شما برای رسیدن به هدفتون(پرس و جوهای پیچیده) منابع زیدی رو درگیر کنید و همچنین کدهای زیادی را بنویسید میتوانید از LINQ استفاده کنید. LINQ به شما قدرت میدهد تا به سادگی به آن چیزی که از یک پرس و جو میخواهید برسید بدون آنکه خود را درگیر کنید. دات نت و کامپایلرش تمام کار ها را انجام میدهند و پرس و جو را اجرا میکنند.
در این پست نگاهی به LINQ داریم و خواهیم دید که چگونه با استفاده از آن میتوان نمایش داده ها را بسیار ساده کرد.
برای درک سادگی کار ، ما همان مثال های قبلی را که بدون استفاده از LINQ با حجم کد بالا و استفاده از منابع دیگر نوشتیم ، این بار با استفاده از LINQ خواهیم نوشت و خواهیم دید که استفاده از LINQ چگونه باعث آسان تر شده کار ما شد.
پایه و اساس پرس و جو های LINQ
برای استفاده از LINQ باید کتابخانه ی مربوطه را به برنامه ی خود اضافه کنید. این کتابخانه در آدرس زیر قرار دارد:
اضافه کردن فضا نام LINQ
using System.Linq;
اضافه کردن این فضای نام امکان دسترسی به تمام عملکرد LINQ را میدهد.
حالا می توانیم با تغییر کدهای مثال 2 شروع کنیم.
اگر به یاد داشته باشید ، در آن مثال ما یک نمونه از لیست عمومی فیلم ها را ایجاد و آن را به کنترل گرید ویو متصل کردیم.
مثال 5 چگونگی تغییر کد ها را با استفاده از LINQ و نمایش اطلاعات آن را در یک گریدویو نشان میدهد.
مثال 5 : ایجاد پرس و جو با LINQ
کد های VB :
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim movies = GetMovies()
Dim query = From m In movies _
Select m
Me.GridView1.DataSource = query
Me.GridView1.DataBind()
End Sub
کد های C-Sharp :
protected void Page_Load(object sender, EventArgs e)
{
var movies = GetMovies();
var query = from m in movies
select m;
this.GridView1.DataSource = query;
this.GridView1.DataBind();
}
مثال بالا به سه قسمت تقسیم می شود.
ابتدا : کد های استفاده شده برای بدست آوردن لیست فیلم ها »» GetMovies()
سپس : کد های استفاده شده برای ایجاد یک پرس و جوی بسیار ساده LINQ به منظور اتنخاب تمام اطلاعات لیست فیلم ها
در انتها : اتصال query به گریدویو برای نمایش اطلاعات مورد نظر
توجه داشته باشید که LINQ از کلمات کلیدی خاصی همچون from و یا select در یک پرس و جو استفاده میکند.
در Visual Studio 2008 امکاناتی اضافه شده که خطاهای نوشتاری LINQ را به کاربر گزارش می دهد و شما میتوانید خطا های پرس و جو های نوشته شده را به راحتی پیدا کنید و آن ها را رفع کنید.
در پرس و جو متغیر جدید m تعریف شده است. (نام این متغییر همانند نام تمام متغیر ها انتخابی است.)این متغیر در پرس و جو ها دو کاربرد دارد.
کاربرد اول : به عنوان منبعی که پرس و جو بر روی آن گرفته شده و بعد از کلمه کلیدی from آورده میشود.(همانند نام جدول در دستورات SQL) که در این مورد به مجموعه ی فیلم ها اشاره می کند. (در مثال 5 ملاحظه کنید)
کاربرد دوم : در قسمت select یک پرس و جو استفاده میشود و هدف آن انتخاب ستون ها برای نمایش در خروجی است. (در
پست بعد ملاحظه خواهید کرد.)