معرفی متدولوژی LINQ
با جستجو در وب با تعاریف مختلفی از این فناوری مواجه خواهیم شد ولی به طور ساده می توان گفت که " LINQ متدولوژی است که فرآیند پیاده سازی هر گونه دستیابی به داده ها را ساده تر میکند". به عبارت دیگر LINQ شما را به استفاده از یک معماری خاص مجبور نمی کند.
هر دامنه مدل دستیابی به داده مخصوص به خود را دارد.برای مثال هنگامی که می خواهید پرس و جویی از یک پایگاه داده به عمل آورید ، به طور نمونه از زبان SQL استفاده می کنید ، یا برای کار با اسناد XML از DOM(Document Object Model) و یا XQuery وبرای دستیابی به داده های یک فایل Excel از توابع API استفاده می کنید که هر کدام " مدل برنامه نویسی متفاوتی از همدیگر برای دستیابی به داده ها از منبع داده ای دارند". LINQ یک روش واحد برای دستیابی و مدیریت داده ها بدون توجه به منبع داده ای تعریف میکند.برای مثال در پرس و جوی LINQ زیر :
Var Query=
From C in Costumer
Where C.Country = "
Select C.CompanyName
شاید این تصور پیش آید که این یک طرز برنامه نویسی جدید برای SQL است ولی اصلا اینگونه نیست بلکه یک پرس وجوی LINQ با استفاده از زبان C# 3.0 است. اولین سوالی که پیش می آید اینست که دامنه داده ای Costumer چیست؟ آیا آرایه ای از Object ها در حافظه است ؟ آیا یک جدول از پایگاه داده و یا یک Dataset است؟ جواب اینست که همه اینها و این نقطه قوت LINQ در مقایسه با سایر مدلهای دستیابی به داده هاست و شما می توانید پرس و جوی بالا را برروی یک پایگاه داده SQL ،Dataset ، فایل متنی و .... به کار ببرید.البته باید توجه داشت که LINQ یک زبان نیست بلکه در واقع یک Syntax است. مثلا کد بالا با زبان C# 3.0 نوشته شده است.
ساختار LINQ
LINQ تکنولوژی است که دامنه های داده ای زیادی را پوشش می دهد.برخی از این دامنه ها در شکل (2) نشان داده شده است.

همانطور که می بینید در ابتدا فقط زبانهای C# 3.0 و VB 9.0 از این فناوری پشتیبانی می کردند ولی مایکروسافت این امکان را قرار داده تا زبانهای دیگر هم بتوانند از آن استفاده کنند (اخیرا LINQ با PHP و JavaScript هم استفاده شده است).
مزیت دیگر LINQ اینست که پرس و جوهایی که با این Syntax نوشته می شوند توسط Debugger قابل اشکال زدایی هستــند . همانطور که می دانــید تمــام قسمتهای کد یک برنامه به جز پرس و جوها قابل اشکال زدایی هستند چرا که پرس وجوها به صورت رشته های متنی در می آیند و لی LINQ به خاطر اینکه خود بخشی از سورس کد است این مشکل را حل کرده است و این همان خاصیت Integrated بودن آنست. شکل 3 با دو پرس و جو که اولی بدون استفاده از LINQ و دومی با استفاده از آن نوشته شده این تفاوت را نمایش میدهد.
شکل ۳

برای استفاده از linq در php می توانید از آدرس زیر استفاده کنید :
منبع : http://jahadu.blogfa.com/
