میتوانم شکست را بپذیرم اما تلاش نکردن را هرگز!

لینکیو

آموزش لینکیو (LINQ)

LINQ مخفف Language Integrated Query به معنای زبان پرس و جوی یکپارچه است که در دات نت نسخه ۳٫۵ معرفی شد و به برنامه نویس اجازه می دهد داده ها را از هر نوع منبع داده ای بدون نیاز به دانستن یک زبان دیگر پرس و جو کند. پرس و جو فرایند به دست آوردن داده از منبع داده است. LINQ پرس و جوی داده از منابع داده ای مختلف را بسیار راحت کرده است.


LINQ چيست ؟
با این که فناوری LINQ در پائیز سال ۲۰۰۵ مطرح گردید ولی فرآیند پیاده سازی آن از سال ۲۰۰۳ آغاز شده بود . هدف از ابداع فناوری فوق، ارائه تسهیلات لازم برای پیاده کنندگان جهت کار با داده در بانک های اطلاعاتی SQL و XML عنوان شده است. در واقع ، وجود یک حلقه گمشده بین داده رابطه ای ( بانک های اطلاعاتی ) ، اسناد XML با زبان های برنامه نویسی ، ضرورت ابداع فناوری فوق را توجیه کرده بود . پیاده کنندگان مجبور بودند برای کار با هر یک از منابع داده ، از روش های مختلفی استفاده نمایند . LINQ را می توان به منزله حلقه ای گمشده بین دنیای داده و زبان های برنامه نویسی همه منظوره تصور کرد . با استفاده از LINQ امکان دستیابی به داده صرفنظر از نوع داده ، با روشی مشابه و یکسان فراهم می گردد .

معرفی Linq
Language Integrated Query به اختصار Linq، یک مدل و روش برنامه نویسی مایکروسافت است که اساسا قابلیت های پرس و جو رسمی را به زبان های برنامه نویسی مبتنی بر Microsoft .NET اضافه می کند. LINQ یک سینتکس جمع و جور، مفسر و قابل فهم را برای تغییر داده ها ارائه می دهد.
LINQ از یک سینتکس مشابه SQL استفاده می کند تا عبارات پرس و جو را فراتر از قابلیت های SQL جاسازی شده در زبان های برنامه نویسی ایجاد کند. به همین دلیل است که SQL جاسازی شده از سینتکس های ساده برای افزودن اظهارات SQL به زبان های برنامه نویسی دیگر استفاده می کند، که در آن هیچ تلاشی برای ادغام چنین اظهارات به سینتکس بومی و مکانیزم تایپ وجود ندارد. بنابراین، نمی توانید ساختارهای زبان مادری مانند قابلیت در دستورات SQL جاسازی شده را فراخوانی کنید، تا وقتی که می توانید از LINQ استفاده کنید، چرا که برای استفاده از سینتکس بومی، ساختارها و مکانیزم های تایپ استفاده می شود. علاوه بر این، LINQ ممکن است برای دسترسی به انواع داده ها استفاده شود، در حالی که SQL جاسازی شده محدود به آدرس دادن به پایگاه های داده ای است که می تواند پرس و جوهای SQL را انجام دهد.

ویژگی های Linq

  • نوشتن query
  • سرعت بالا در پیاده سازی نرم افزار
  • قابلیت اشکال زدائی و IntelliSence
  • افزایش راندمان برنامه نویسی
  • امنیت بالا
  • تغییرپذیری آسان

شرکت مایکروسافت امکانات متعددی را در فریمورک دات نت جهت کار با اسناد XML ارائه کرده است . ارائه System.Xml ، System.Xml.XPath و System.Xml.Schema نمونه هائی در این زمینه می باشند . پیاده کنندگان نرم افزار در زمان کار با اسناد XML مجبور بودند که از فناوری های متعددی نظیر DOM ( برگرفته شده از Document Object Mode ) و XQuery استفاده نمایند . همین موضوع باعث شده بود که کار با اسناد XML نظیر خواندن و یا نوشتن داده در آنها برای بسیاری از پیاده کنندگان مشکل باشد.

انواع LINQ

  • Linq to Object
  • Lint to XML
  • Linq to ADO.Net
  • Linq to Array
  • Linq to SQL
  • Linq to Entity Framework

مزایای استفاده از Linq چیست ؟

  • ارائه یک ساختار (زبان پرس و جو) برای پرس و جو کردن اطلاعاتی از قبیل پایگاه داده ها ، XML ها ، ADO.NET Dataset ، وب سرویس ها و سایر اشیا مانند آرایه ها و لیست ها
  • کنترل نوع (type checking) کامل که در Linq می باشد همراه با IntelliSense کمک می کند تا خطاهای زمان اجرا به شدت کاهش بیابند
  • ارائه توابع مانند filtering ، مرتب سازی و grouping با حداقل کدنویسی
  • امکان استفاده مجدد از جست و جوی ایجاد شده
  • امکان دیباگ کردن با دیباگر .NET

معایب Linq چیست ؟

  • Linq برای نوشتن جست و جوهای پیچیده گزینه مناسبی نیست
  • عدم ارائه تمامی توانایی های SQL ، مانند کش کردن execution plan ها در stored procedure
  • در صورتی که شما جست و جوی اصولی ننوشته باشید Performance پائین تری خواهید داشت.
  • اگر قصد ویرایش در جست و جو را داشته باشید باید برنامه را از نو کامپایل کرده و به سرور منتقل نمایید.

فهرست سرفصل ها و رئوس مطالب مطرح شده در این مجموعه آموزشی
  • روش پرس و جوی سنتی (بدون استفاده از LINQ)
    • مقدمه ای بر LINQ به Object
    • روش پرس و جوی سنتی (بدون استفاده از LINQ)
    • فیلتر کردن لیست
    • مرتب سازی
    • ایجاد کلاس پایه
  • جایگزین کردن LINQ به جای روش های سنتی
    • اضافه کردن فضا نام LINQ
    • ایجاد پرس و جو با LINQ
    • تغییر نام ستون ها
    • مرتب سازی داده ها با استفاده از LINQ
    • اضافه کردن فیلتر (شرط) در پرس و جو های LINQ
    • گروه بندی داده ها
    • استفاده از اپراتور ها در پرس و جو های
    • پیوند در LINQ
    • صفحه بندی با استفاده از LINQ
  • LINQ به XML
    • ایجاد یک فایل XML
    • یک پرس و جوی ساده بر روی فایل های XML
    • مشخص کردن نوع عناصر XML با استفاده از LINQ
    • join دادهای XML با استفاده از LINQ
  • LINQ به SQL
    • مقدمه ای بر LINQ به SQL
    • ایجاد یک data context جدید
    • نوشتن پرس و جوی LINQ
    • گروه بندی داده ها توسط LINQ به SQL

برای یادگیری LINQ چه چیز را باید از قبل بدانیم !
قبل از اینکه مطالعه ی آموزش LINQ (لینکیو) را شروع کنید، شما باید دانش پایه ای(حداقلی) از موارد زیر را داشته باشید

  1. مایکروسافت اس‌کیوال سرور - (Microsoft SQL Server)
  2. سی شارپ - (C#)
  3. انتیتی فریم ورک - (Entity Framework)

موردی یافت نشد