مزیت استفاده از IQueryable به عنوان نوع خروجی متد 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
    

    پست های مرتبط

    مطالعه این پست ها رو از دست ندین!

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

    فهرست مطلب: نکته::نکتهساخت یک: Controller و View هااجرا کردن: Applicationپروژه ‌ای که با استفاده از Entity Framework Core عملیات Data…

    بیشتر بخوانید

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

    فهرست مطلب: در این آموزش از وب سایت پرووید در رابطه با کار کردن با شی DbContext و به طور…

    بیشتر بخوانید

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

    فهرست مطلب: در این پست از وبسایت پرووید در رابطه با آموزش Dapper و دسترسی شی گرا به بانک اطلاعاتی…

    بیشتر بخوانید

    نظرات

    سوالات و نظراتتون رو با ما به اشتراک بذارید

    برای ارسال نظر لطفا ابتدا وارد حساب کاربری خود شوید.