LINQ چیست؟

شاید آخرین باری که در .NET 2005 سعی داشتین از SQL استفاده کنید متوجه پیچیدگی کار شده باشید. همراه .NET framework 3.5 امکان جدیدی به نام LINQ اضافه شد که کار را بسیار راحتر نمود. LINQ (Language Integrated Query) یک Microsoft .NET framework است که امکان query زدن روی داده ها را در خود زبان .NET ایجاد می کند. جالب است که بدانید گرامر LINQ بسیار با SQL شباهت دارد.


LINQ می تواند روی object، XML و پایگاه داده ها عمل کند. پس هر داده ای قبل از آنکه توسط LINQ دست کاری شود باید حتما به صورت object در بیاید.

عملگرهای رایج در LINQ:

در اینجا فقط لیستی تهیه شده و وارد جزیئات دستورات نشده :

1) Select / SelectMany

2) Where

3) Sum / Min / Max / Average / Aggregate

4) Join / GroupJoin

5) Take / TakeWhile

6) Skip / SkipWhile

7) Union / Intersect / Except

8) GroupBy

9) OrderBy / ThenBy

چگونگی استفاده از LINQ:

کافی است در این حالت دیاگرامی مانند دیاگرام موجود در SQL رسم کرده و نام ستونها و جداول و روابط آنها را .NET 3.5 مشخص کنید. آنگاه با ذخیره کردن آنها خود .NET کلاسها را با توجه به روابط آنها از روی دیاگرام استخراج می کند. همراه آن همواره کلاسی به نام DataContext ایجاد می شود. این کلاس تمام StoredProcedure های لازمه و جداول را در بر دارد. در واقع DataContext هسته ی اصلی است و تمام عملیت مربوط به query زدن و اعمال تغییرات توسط آن صورت می گیرد.


کد زدن به وسیله LINQ :

با انجام این کارها می توان به راحتی کدهای لازم برای کار با داده را پیاده سازی کرد.

در اینجا با مثالی چگونه کد زدن با LINQ بیان می کنیم:

فرض کنید در پایگاه داده ای به نام "School" دو جدول(کلاس) به نامهای "Course" و "Student" داریم. حال می خواهیم نام تمام دانش آموزانی که درس English دارند را در جدول result نگه داریم:

SchoolDataContext db = new SchoolDataContext();

Var result = from s in db.Student

where s.Course.CourseName == “English”

select s;

یا فرض کنید بخواهید دانش آموزان متولد سال 1345 را حذف کنید :

SchoolDataContext db = new SchoolDataContext();

Var graduateStudent = from s in db.Student

where s.StudentBirthDate == “1345”

select s;

db.Student.RemoveAll(graduateStudent);

db.SubmitChanges();

خلاصه:

LINQ روش مناسبی برای پیاده سازی لایه ی داده است. بعد از معرفی مدل داده ای می توانید به راحتی روی داده ها عمل حذف و اضافه و ... را انجام داد.