PDA

View Full Version : آموزش LINQ در Microsoft .NET Framework (مقدمه)



شاهرخ عشایری
دوشنبه 18 بهمن 1389, 23:10 عصر
اغلب پایگاه داده های رابطه ای از دستورات SQL (دستورات CRUD) برای بازیابی و مدیریت داده ها استفاده می کنند و Business Login یا لایه تجاری اغلب برنامه ها، شامل دستورات SQL می باشد. دستورات SQL یا توسط برنامه های وب ایجاد شده و به پایگاه داده جهت اجرا ارسال می شوند، و یا بصورت پروسیجر از قبل در پایگاه داده وجود داشته و فقط توسط برنامه فراخوانی می گردند. پروسیجر روش و متدی است که به کمک آن می توان دستورات SQL را در خارج از محیط IDE و کد تعریف کرد. به کمک پروسیجر می توان دستورات SQL را بصورت دینامیکی همراه با پارامترهای موردنظر در زمان اجرای برنامه ایجاد نمود. با استفاده از این روش می توان برنامه های قدرتمند با انعطاف بالاتری ایجاد کرد.

البته پروسیجرها معایبی نیز دارند. اولین عیب آنها نگهداری مشکل کد برنامه می باشد. به عنوان مثال، یک وبسایت بزرگ را در نظر گرفته، که در آن قصد دارید قسمت بیشتر Database Logic (به دستوراتی از برنامه که در رابطه با پایگاه داده و اجرای دستورات آن می باشد Database Logic گفته می شود)، نه همه آنرا توسط پروسیجرها ایجاد کنید. اگر از این روش استفاده نمایید، سورس کلد برنامه در دو قسمت مجزا تعریف و نگهداری شده است.

یک قسمت در فایل های برنامه، که شامل فایل های Markup، و Code-Behind است و قسمت دیگر در پایگاه داده، که پروسیجرها در آن ذخیره شده اند. در این روش اگر بخواهید به قسمی از کد مراجعه کنید، باید ابتدا بیاد بیاورید که کد مورد نظر در کدام قسمت ذخیره شده است. انجام این کار در برنامه های بزرگ و پیچیده می تواند بسیار مشکل باشد.
دومین عیب استفاده از Table-Oriented با امکانات محدود در پایگاه داده، به جای Object-Oriented در .NET می باشد. به عبارت دیگر، در محیط های Object-Oriented مانند .NET ، از نمونه های کلاس ها که به آنها آبجکت گفته می شود، استفاده می کنید. این کلاس ها می توانند شامل Property ها، که آبجکت را تعریف می کنند و متدها که رفتار کلاس را تعیین می کنند، باشند. توسط این روش می توان آبجکت های ایجاد شده را به یک رکورد جدول تبدیل نمود. ولی Table-Oriented فقط بر اساس Table ها ایجاد شده و شامل ردیف ها و ستونها می باشد.

برای استفاده از روش Object-Oriented و پیاده سازی آن NET Framework 3.5 زبان جدیدی به نام LINQ را که مخفف Language Integrated Query می باشد ارئه کرده است. LINQ در همه زبانهای .NET 3.5 مانند VB.NET، C#.NET و غیره قرار داده شده است. با استفاده از LINQ می توان به جای نوشتن دستورات SQL از قبیل SELECT، DELETE و ... دستورات مورد نیاز خود را در قالب کلاس هایی با خواص و متدهای مختلف (Object-Oriented) در زبانهای VB و C# نوشته و آنها را مستقیما بر روی رکوردهای پایگاه داده اجرا کنیم.