جستجو برای:
سبد خرید 0
  • محصولات
  • دوره ها
  • وبلاگ
  • درباره ما
  • تماس با ما
پرووید
ورود
[suncode_otp_login_form]
گذرواژه خود را فراموش کرده اید؟
عضویت
[suncode_otp_registration_form]

A password will be sent to your email address.

اطلاعات شخصی شما برای پردازش سفارش شما استفاده می‌شود، و پشتیبانی از تجربه شما در این وبسایت، و برای اهداف دیگری که در سیاست حفظ حریم خصوصی توضیح داده شده است.

  • 09336863931
  • info@provod.ir
پرووید
  • محصولات
  • دوره ها
  • وبلاگ
  • درباره ما
  • تماس با ما
ورود | ثبت‌نام
آخرین اطلاعیه ها
لطفا برای نمایش اطلاعیه ها وارد شوید
0

وبلاگ

پرووید > وبلاگ > تکنولوژی های دسترسی به داده (Data Access Technologies) > زبان LINQ > مزیت استفاده از IQueryable به عنوان نوع خروجی متد LINQ

مزیت استفاده از IQueryable به عنوان نوع خروجی متد LINQ

شهریور 10, 1396
ارسال شده توسط مرتضی گیتی
تکنولوژی های دسترسی به داده (Data Access Technologies)، زبان LINQ

فرض کنید متد زیر را در برنامه ی خود تعریف کرده اید که یک کالکشن از اشیا Customers را بر می گرداند.

 
Public Function GetPremiumCustomers() As List(of Customer)
Dim db As New dbContextObject
Return From c In db.Customers
Where c.IsPremium = True
Select c
End Function

مسئله این است که برنامه نویسان دیگر ممکن است نیاز داشته باشند که متد شما را به منظور انجام یک کار دیگر استفاده کنند:

 
res = (From c in GetPremiumCustomers()
Where c.City = "Regina"
Select c).ToList()

مشکل دستور بالا در این است که تمامی نمونه های (Instance) های شی Customer را بر می گرداند، در حالی که دستور مورد نظر فقط تعدادی از آنها (کسانی که در شهر Regina) ساکن هستند را نیاز دارد. همه ی ما می دانیم که خواندن رکوردهایی که به آنها نیازی نداریم، باعث کاهش سرعت بانک اطلاعاتی می شود. به نظر شما، اگر می توانستیم دستور LINQ ی که در بالا در متد GetPremiumCustomers بود را با دستور LINQ ی که در قسمت بالا تعریف شد را ترکیب می کردیم بهتر نبود؟ البته منظور ما این است که این ترکیب زمانی اتفاق بیفتد که دستورات SQL متناظر با این دستور LINQ تولید می شود.

خبر خوب این که در دات نت به راحتی می توان این ترکیب را انجام داد تا فقط مشتری های Premimum ساکن در Regina برگرداننده شوند. تنها کاری که نیاز است انجام دهید این است که نوع خروجی متد GetPremiumCustomers که در بالا تعریف کردید را از نوع اینترفیس IQueryable تعریف کنید:

 
Public Function GetPremiumCustomers() As IQueryable(of Customer)
Return From c In db.Customers
Where c.IsPremium = True
Select c
برچسب ها: آموزش LINQآموزش تکنیک های LINQآموزش فارسی LINQآموزش نکات LINQدستورات LINQدستورات LINQ و نکات آننوع خروجی در دستورات LINQ
قبلی دریافت داده های JSON از کوئری های SQL Server
بعدی انتخاب راهبردهای ساخت برنامه های موبایل با Xamarin

پست های مرتبط

آذر 20, 1397

ساخت عملی یک پروژه ASP.NET Core MVC و Entity Framework Core

مرتضی گیتی
ادامه مطلب

تیر 4, 1397

استفاده صحیح از DbContext و فراخوانی متد Dispose در EF

مرتضی گیتی
ادامه مطلب

خرداد 27, 1397

ابزار Dapper و دسترسی شی گرا به بانک اطلاعاتی

مرتضی گیتی
ادامه مطلب

خرداد 19, 1397

تبدیل کردن DataTable ها به JSON در استفاده از سرویس ها

مرتضی گیتی
ادامه مطلب

دیدگاهتان را بنویسید لغو پاسخ

تماس با ما
  • شیراز، شهرک ولیعصر، خیابان شهید اصغر ظریف، کوچه ۱۶ (۱۲ ایثار)، پلاک ۱۹۱۲، طبقه همکف.
  • 09336863931
  • info@provid.ir
2025 © تمامی حقوق برای پرووید محفوظ است.
طراحی شده توسط آیتک استودیو