دوره آموزشی راهنمای کامل NET LINQ.: جستجو در مجموعه‌ها، پایگاه‌های داده و مارک‌آپ

دوره آموزشی راهنمای کامل NET LINQ.: جستجو در مجموعه‌ها، پایگاه‌های داده و مارک‌آپ

7 ساعت 34 دقیقهمتوسط2025-05-02

مدرسین

Walt Ritscher

Walt Ritscher

Programmer, UI Designer, Staff Instructor at LinkedIn Learning

Learn-it Labs

Learn-it Labs

جزئیات دوره

تو این دوره کامل و جامع، والت ریچِر بهت دنیای جذاب و قدرتمند LINQ در دات‌نت رو نشون میده.
اول با قواعد و سینتکس LINQ آشنا میشی و بعد یاد می‌گیری چطوری با اپراتورهای متنوعش راحت‌تر و سریع‌تر بتونی داده‌ها رو از منابع مختلف مثل شیء‌های حافظه، دیتابیس‌ها و فایل‌های XML مدیریت کنی.
می‌فهمی که چطوری با LINQ to Objects می‌تونی مجموعه‌ها رو بهینه و کارآمد اداره کنی، چطوری با LINQ to Entities به داده‌های ساختاریافته پایگاه داده دسترسی پیدا کنی و با LINQ to XML و LINQ to JSON چطور اطلاعات سلسله‌مراتبی رو به آسانی بخونی و دستکاری کنی.
حتی تکنیک‌های پیشرفته مثل اجرای تعویقی (deferred execution) و درخت‌های عبارت (expression trees) رو یاد می‌گیری که باعث میشن کدهات هم سریع‌تر باشن و هم خواناتر و قابل نگهداری‌تر.
چه با داده‌های رابطه‌ای کار کنی، چه برنامه‌هایی بسازی که به شدت وابسته به داده هستن، یا بخوای داده‌های متنوع و پیچیده رو مدیریت کنی، مسلط شدن به LINQ حسابی کارت رو راحت می‌کنه و باعث میشه کد تمیزتر و قابل فهم‌تری داشته باشی.

🎯 اهداف یادگیری:
آشنایی کامل با سینتکس و قواعد LINQ در دات‌نت.
استفاده از اپراتورهای متنوع LINQ برای جستجو، تغییر و دستکاری داده‌ها.
مدیریت بهینه مجموعه داده‌ها با LINQ to Objects.
دسترسی به داده‌های ساختاریافته پایگاه داده با LINQ to Entities.
کار با داده‌های سلسله‌مراتبی در XML و JSON از طریق LINQ.
یادگیری تکنیک‌های پیشرفته مثل deferred execution و expression trees.
توانایی فیلتر، مرتب‌سازی، گروه‌بندی و تجمیع داده‌ها به شکلی ساده و مؤثر.
نوشتن کدهای قابل فهم، پاک و قابل نگهداری با بهره‌گیری از LINQ.

مهارت ها

LINQ.NETDatabase DevelopmentDatabase ManagementSoftware Development ToolsMicrosoftSoftware DevelopmentOne-Off

سرفصل ها

مقدمه

  • قدرت کوئری‌های درون‌زبانی را آزاد کنید
  • چگونه از این دوره بیشترین بهره را ببریم
  • نقشه راه دوره - آنچه یاد خواهید گرفت
  • نحوه دسترسی به کد نمونه در GitHub

روح LINQ

  • چرا LINQ نیاز به یک موتور پرس و جو
  • ملزومات LINQ - مفاهیم و ویژگی‌های کلیدی
  • پیدا کردن و استفاده از کد مثال

کار با LINQPad

  • چرا از LINQPad استفاده کنیم
  • شروع کار - مروری بر LINQPad
  • نحوه تنظیم تنظیمات LINQPad
  • نوشتن و اجرای کد در LINQPad
  • یک پوشه مقصد برای فایل‌های دوره تعیین کنید
  • نحوه اشکال‌زدایی کد در LINQPad
  • بررسی ویرایشگر عبارات
  • بررسی ویرایشگر دستورات
  • قالب‌بندی خروجی با استفاده از متد Dump
  • بررسی ویرایشگر برنامه
  • نحوه اجرای زیرمجموعه‌ای از کد

نگاه‌های سریع

  • نگاهی سریع به یک کوئری LINQ to Objects
  • نگاهی سریع به یک کوئری LINQ to Entities
  • نگاهی سریع به یک کوئری LINQ به XML

بخش‌هایی از یک کوئری LINQ

  • از چه منابعی می‌توانید پرس‌وجو کنید؟
  • مقدمه‌ای بر کلاس Enumerable
  • استفاده از متدهای استاتیک قابل شمارش
  • استفاده از متدهای الحاقی Enumerable
  • نوشتن کوئری‌ها با سینتکس عبارات
  • بازنگری منابع داده قابل پرس‌وجو
  • اجرای معوق - چه زمانی یک پرس‌وجو اجرا می‌شود
  • ساخت خطوط لوله اجرایی در LINQ
  • ترکیب متدهای افزونه و سینتکس پرس‌وجو

تولید توالی داده‌ها

  • تولید یک توالی خالی
  • استفاده از DefaultIfEmpty در LINQ
  • نحوه استفاده از روش تکرار
  • نحوه استفاده از متد Range

مبانی LINQ

  • سه نوع عبارت پرس‌وجو
  • مرور بندهای عبارت پرس‌وجو
  • نمونه‌هایی از عبارات پرس و جو
  • بررسی کتابخانه‌های کلاس دات‌نت در دوره
  • کوئری‌ از کتابخانه‌های دات نت در ASP.NET
  • کار با کتابخانه‌های خارجی دات‌نت
  • استفاده از select برای تبدیل به یک نوع .NET
  • استفاده از select برای تبدیل به یک نوع ناشناس
  • استفاده از عبارات با select
  • اندیس‌گذاری در یک توالی دیگر
  • چالش - نوشتن عبارات انتخابی
  • راه حل - نوشتن عبارات انتخابی

فیلتر کردن داده‌ها

  • استفاده از متد Where
  • استفاده از عملگرهای منطقی با متد Where
  • بررسی تعاریف کلاس OfType
  • از متد OfType استفاده کنید
  • چالش - فیلتر کردن نتایج با استفاده از Where
  • راه حل - فیلتر کردن نتایج با Where

خلاصه‌سازی و تحلیل داده‌ها با استفاده از داده‌های تجمیعی

  • نحوه عملکرد عملیات تجمیعی
  • عملگرهای تجمیع پایه - مجموع، میانگین، حداقل، حداکثر، تعداد
  • استفاده از لامبداها در عملیات تجمیعی
  • مشخص کنید کدام ویژگی را باید تجمیع کنید
  • ایجاد عملیات تجمیعی سفارشی
  • معکوس کردن یک توالی با یک مجموع سفارشی

دسته‌بندی داده‌ها با GroupBy

  • گروه‌بندی داده‌ها با روش GroupBy
  • ایجاد گروه‌ها با یک عبارت پرس‌وجو
  • تبدیل گروه‌ها با استفاده از انتخابگر عنصر
  • تبدیل گروه‌ها با عبارات پرس‌وجو
  • تغییر نام کلیدها و مقادیر با استفاده از یک انتخابگر نتیجه
  • تغییر نام مقادیر کلیدها با عبارات پرس و جو
  • تکرار روی گروه‌ها در LINQ
  • استفاده از چندین کلید برای گروه‌بندی
  • مسطح‌سازی توالی‌ها با SelectMany
  • چالش - گروه‌بندی نتایج بر اساس مقادیر رنگ
  • راه حل - گروه بندی نتایج بر اساس مقادیر رنگ

عملیات عنصر

  • استفاده از متدهای First و Last
  • نحوه‌ی عملکرد متد FirstOrDefault
  • بازیابی عناصر با ElementAt
  • استفاده از Single و SingleOrDefault

انجام عملیات مجموعه

  • روش Distinct توضیح داده شده است
  • درک ضرب دکارتی
  • نحوه عملکرد روش تقاطع
  • استفاده از روش Union
  • فیلتر کردن با متد Except
  • یافتن مقادیر تکراری در یک دنباله

کمی‌سازی داده‌ها

  • بررسی عملگرهای تعیین مقدار
  • از متد Any برای تشخیص توالی خالی استفاده کنید
  • از متد Any برای بررسی وجود یک عنصر استفاده‌کنید .
  • نحوه‌ی عملکرد متد Contains
  • از متد All برای بررسی تطابق همه عناصر استفاده‌کنید .

پارتیشن‌بندی داده‌ها

  • بررسی عملگرهای پارتیشن
  • استفاده از عملگرهای Skip و Take
  • استفاده از Skip و Take با شرط‌ها

توسعه LINQ

  • استفاده از LINQ در یک برنامه .NET
  • بهبود پرس‌وجوها با MoreLinq
  • MoreLinq در عمل - مثال‌های اضافی

کوئری‌ از پایگاه‌های داده

  • درک LINQ برای پایگاه‌های داده
  • نگاهی گذرا به کوئری‌ از داده‌های پایگاه داده
  • تغییر رشته‌های اتصال پایگاه داده
  • IQueryable و سایر انواع پایگاه داده
  • نصب ابزارهای قدرتمند SQLite و EF core
  • مروری بر پایگاه‌های داده دوره
  • نگاهی سریع به ایجاد مدل‌های EF
  • نحوه استفاده از DbContext سفارشی
  • مدل‌های چارچوب موجودیت را مرور کنید

پایگاه‌های داده و LINQPad

  • به پایگاه داده نمونه موجود متصل شوید
  • اتصال به پایگاه داده دیگر
  • اتصال به یک مدل EF در یک اسمبلی .NET
  • مشاهده ساختارهای پایگاه داده در LINQPad

بررسی انواع پرس‌وجوپذیر

  • بررسی انواع LINQ مربوطه
  • درک نحوه‌ی کار DbContext
  • DbSet - پایه و اساس مجموعه‌های EF
  • استفاده از ویژگی‌های ناوبری در EF
  • افزودن، به‌روزرسانی و حذف داده‌ها در EF
  • مشاهده SQL تولید شده در LINQPad

پرسش‌های جالب

  • تصویرسازی - بازیابی ستون‌های کمتر
  • صفحه‌بندی داده‌ها با قابلیت دریافت و رد کردن
  • برای جستجوی سریع‌تر مبتنی بر کلید، از Find استفاده کنید
  • استفاده از ویژگی‌های ناوبری EF روی joinها
  • استفاده از متد Contains در کوئری‌ها
  • گروه‌بندی نتایج پرس‌وجو با GroupBy
  • مسطح‌سازی مجموعه‌های فرزند با SelectMany
  • فیلتر کردن رکوردها بر اساس محدوده تاریخ

LINQ به مجموعه داده

  • تبدیل ADO.NET و LINQ به DataSet
  • ارجاع به یک فایل پرس‌وجوی دیگر
  • ایجاد و پر کردن یک DataSet
  • کوئری‌ از یک DataSet با استفاده از AsEnumerable
  • دسترسی به فیلدهای DataRow در یک پرس و جو

درک LINQ به XML

  • درک LINQ برای XML
  • مروری بر انواع XML در .NET

بارگذاری داده‌های XML

  • فایل‌های داده XML مورد استفاده در این دوره
  • بارگذاری داده‌های XML از یک فایل
  • مقدمه‌ای بر کلاس XDocument
  • چگونه فضاهای نام XML بر پرس‌وجوها تأثیر می‌گذارند
  • تجزیه XML از یک رشته
  • ذخیره یک سند XML
  • نگاهی سریع به یک کوئری LINQ به XML

کار با عناصر و ویژگی‌ها

  • ساختار و داده‌های موجود در فایل XML
  • بازیابی یک عنصر از XML
  • بازیابی یک ویژگی از XML
  • عناصر را با یک فضای نام دریافت کنید
  • دریافت ویژگی‌ها با یک فضای نام
  • مجموعه‌ای از عناصر را بازیابی کنید
  • عناصر فرزند را از XML بازیابی کنید
  • از تابع Descendants() برای یافتن عناصر فرزند استفاده کنید
  • بازیابی ویژگی‌ها از XML
  • خواندن مقادیر از عناصر و ویژگی‌ها

ویرایش مقادیر XML

  • تغییر مقادیر عنصر و ویژگی
  • مشکلات مربوط به تغییر مقادیر عناصر
  • استفاده از SetElementValue برای اضافه کردن، حذف کردن و تغییر دادن عناصر فرزند

عملگرهای کوئری XML

  • استفاده از سینتکس کوئری برای کار با عناصر
  • مقادیر عنصر پرس‌وجو در XML
  • ویژگی‌های پرس‌وجو در XML
  • داده‌ها را به یک نوع ناشناس تبدیل کنید
  • فیلتر بر اساس مقدار ویژگی با استفاده از Where
  • برای مقایسه مقادیر از Where استفاده کنید
  • انجام پرس‌وجوهای تجمیعی در XML
  • مرتب‌سازی نتایج پرس‌وجو با OrderBy
  • عناصر خالی و مقادیر خالی را پیدا کنید
  • گروه‌بندی داده‌های XML با GroupBy
  • چالش - ایجاد یک خروجی رشته‌ای سفارشی
  • راه حل - ایجاد یک خروجی رشته‌ای سفارشی
  • چالش - فیلتر کردن عناصر بدون محتوا
  • راه حل - فیلتر کردن عناصر بدون محتوا
  • چالش - فیلتر کردن نتایج برای مقادیر نامعتبر
  • راه حل - فیلتر کردن نتایج برای مقادیر نامعتبر

مقدمه‌ای بر LINQ به JSON

  • تکنیک‌های اولیه پرس‌وجوی JSON
  • بارگذاری داده‌ها از یک فایل JSON
  • پرس‌وجوی JSON با نوع پیش‌بینی
  • گروه‌بندی داده‌های JSON با GroupBy

ادامه سفرتان

  • مثال‌های بیشتر از دوره
  • مراحل بعدی در سفر LINQ شما
۱۲۰,۰۰۰ تومان