بهینه سازی کوئری‌های LINQ - بخش اول
یکی از جذاب‌ترین لحظات کار با LINQ و EF زمانی است که به خاطر افزایش حجم دیتا، کوئری خود را بازنگری کرده و آن را بهینه می‌کنید. برای یک مسئله می‌توان کوئری‌های متنوعی نوشت که همگی به یک جواب میرسند؛ ولی زمان اجرا و میزان حافظه‌ی مصرفی متفاوتی دارند. یک سناریوی رایج در نوشتن کوئری‌های LINQ، ترکیب اطلاعات جداول مختلف و محاسبه‌ی یک عدد معنی دار از ترکیب آن هاست. برای نمونه دو Entity زیر ...
آموزش Linq - بخش ششم: عملگرهای پرس و جو قسمت پنجم (پایانی)
عملگرهای اتصال (Join Operators) • Join • GroupJoin • Zip عملگر Join این عملگر همانند inner join در SQL، دو مجموعه را بر اساس کلید‌های مرتبط که از طریق پارامترها به آن ارسال می‌شوند، با یکدیگر ترکیب می‌کند. در عملیات Join، یک توالی ورودی که به آن توالی خارجی (Outer Sequence) گفته می‌شود با یک توالی دیگر که به آن توالی داخلی (Inner Sequence) می‌گوییم، بر اساس کلید‌های م ...
آموزش Linq - بخش ششم: عملگرهای پرس و جو قسمت چهارم
عملگر‌های تولید Generation Operator عملگر‌های تولید، برای ما توالی ایجاد می‌کنند و تفاوت‌های عمده‌ای با سایر عملگرهای پرس و جو دارند که در بخش زیر به آنها اشاره می‌کنیم: 1- هیچ توالی ورودی را دریافت نمی‌کنند. 2- این عملگر‌ها بصورت متد الحاقی پیاده سازی نشده‌اند و بصورت متد‌های استاتیک در کلاس Enumerable قرار گرفته‌اند. امضاء زیر مربوط به متد Empty می‌باشد: ...
آموزش Linq - بخش ششم : عملگرهای پرس و جو قسمت سوم
عملگر‌های تبدیل Conversion Operator عملگر‌های پرس و جوی تبدیل، توالی‌هایی را که از جنس <IEnumerable<T هستند، به انواع دیگر مجموعه تبدیل می‌کنند. از عملگر‌های پرس و جوی زیر می‌توان برای تبدیل توالی‌ها استفاده کرد : OfType Cast ToArray ToList ToDictionary ToLookup عملگر OfType این عملگر عناصری از توالی را که نوع آنها را مشخص می‌کنیم باز می‌گرداند. ...
آموزش Linq - بخش ششم : عملگرهای پرس و جو قسمت دوم
در ادامه‌ی سری آموزشی LINQ، عملگر‌های پرس و جوی مرتب سازی، گروه بندی و مجموعه را بررسی خواهیم کرد. عملگرهای مرتب سازی Ordering Operators این عملگر‌ها عناصر توالی ورودی را به خروجی ارسال می‌کنند؛ با این تفاوت که توالی خروجی مرتب شده، توالی ورودی است. عملگر OrderBy این عملگر توالی ورودی را بر اساس کلیدی که مشخص می‌کنیم مرتب می‌کند. مث ...
آموزش LINQ بخش ششم - عملگرهای پرس و جو قسمت اول
عملگرهای استاندارد پرس و جو در یک طبقه بندی کلی، عملگرهای پرس و جو بر اساس ورودی و خروجی آنها به سه دسته تقسیم می‌شوند: 1- نتیجه‌ی توالی ورودی، بصورت یک توالی، به خروجی ارسال می‌شود. 2- نتیجه‌ی توالی ورودی، بصورت یک عنصر یکتا و واحد به خروجی ارس ...
آموزش LINQ بخش پنجم
در ادامه سری آموزشی LINQ، موارد دیگری از عبارت‌های پرس و جو را بررسی می‌کنیم: • عبارت group • عبارت orderby • کلمات کلیدی ascending و descending • کلمه کلیدی by بررسی عبارت group و کلمه‌ی کلیدی by عبارت group یک توالی یک بعدی (flat sequence) یا ساده را از ورودی دریافت و یک توالی گروه ...
آموزش LINQ بخش چهارم
بررسی عبارت Join عبارت Join برای ایجاد ارتباط بین عناصر دو توالی استفاده می‌شود. پیش نیاز این عملیات وجود یک مقدار در عناصر توالی ورودی است که بتوان از طریق آن برابری دو عنصر را اهراز کرد. عبارت join، دو توالی را به عنوان ورودی دریافت می‌کند. هر عنصر در توالی اول باید یک خصوصیت داشته باشد که بتوان آن را با یک خصوصیت از عناصر توالی دوم مقایسه کرد. عبارت Join، مقادیر مشخص شده را از طریق کلمه‌ی کلیدی equals مقایسه ...
آموزش LINQ بخش سوم
در ادامه سری آموزشی LINQ به بررسی متغیرهای Range می‌پردازیم: 4 عنصر یک عبارت پرس و جو عبارتند از: • علملگرهای LINQ • کلمات کلیدی Keyword ...
آموزش LINQ بخش دوم
سبک‌های مختلف نوشتن Query در LINQ تعریف Query: عبارتی که اطلاعات را از منبع داده، بازیابی می‌کند، پرس و جو یا Query می‌گوییم. بطور کلی عملیات پرس و جو شامل سه بخش زیر می‌شود: 1- مشخص کردن منبع داده 2- ایجاد پرس و جو (Query) 3- اجرای پرس و جو // The Three Parts of a LINQ Query: // 1. منبع داده int[] numbers = new int[7] { 0, 1, 2, 3, 4, 5, 6 }; // 2. ایجاد پرس و جو // numQuery is an IEnumerable<int> ...