دوره آموزشی راهنمای کامل NET LINQ.: جستجو در مجموعهها، پایگاههای داده و مارکآپ
7 ساعت 34 دقیقهمتوسط2025-05-02
مدرسین

Walt Ritscher
Programmer, UI Designer, Staff Instructor at LinkedIn Learning

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 آشنا میشی و بعد یاد میگیری چطوری با اپراتورهای متنوعش راحتتر و سریعتر بتونی دادهها رو از منابع مختلف مثل شیءهای حافظه، دیتابیسها و فایلهای 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 شما