• 1397/10/18

متد Get در Repository :

سلام ، خسته نباشید .در رابطه با متد Get در Repository چنتا سوال داشتم :

1- با تعریف فیلد  dbSet از نوع DbSet<TEntity> و مقدار دهی اون در قسمت سازنده ،  همه ی داده های جدول مورد نظر واکشی میشه  ،

بهتر نیست این فیلد از نوع IQueryable<TEntity>  تعریف بشه تا تنها زمانی که نیازه و پس از اعمال فیتر در متد Get ، واکشی صورت بگیره ؟

 

2- در قسمت انتهایی متد Get  بهتر نیست نتایج به List تبدیل نشن و با همون نوع IQueryable<TEntity> فرستاده بشن تا زمانی که در قسمت جستجوی برنامه قرار هست چند فیلتر مختلف اعمال کنیم ، پس از اعمال همه ی این فیلتر ها در نهایت تبدیل به List کنیم ؟

برای مثال در قسمت جستجوی تراکنش ها ، در صورت انتخاب طرف حساب ،  فیلتر مربوط به طرف حساب انجام میشه و در صورت انتخاب تاریخ شروع ،  فیلتر مربوط به تاریخ بر روی همون نتایج قبلی انجام میشه یعنی یه سری از داده ها زیاد تر از مقدار نیاز واکشی شدن چون در انتهای متد Get  همه ی داده ها به List  تبدیل شدن .

 

  • 1397/10/22
  • ساعت 14:45

سلام

اگه امکانش هست ممنون میشم به سوال من پاسخ بدین.


  • 1397/10/22
  • ساعت 15:51

سلام 

۱ خیر نمیشه

۲ بله میشه 


  • 1397/10/22
  • ساعت 18:05

وقت بخیر ، ممنون از پاسخ

در مورد سوال 1 ، نوع DbSet<TEntity>  خاصیت Lazy load  داره ؟ اگر خیر ، بنابراین  هر بار که از متد Get  استفاده کنیم ، اول کار بدون توجه به فیلتر ها ، فیلد  dbSet  در سازنده با همه ی داده های جدول پر میشه که ما به همه ی این داده ها نیازی نداریم ؛ پس چرا نمیشه dbSet رو از نوع  IQueryable<TEntity> تعریف کنیم تا این مشکل حل بشه ؟


  • 1397/10/22
  • ساعت 20:03

بله در آموزش repository در سایت توضیح دادم


  • 1397/10/22
  • ساعت 20:36

خیلی ممنون


logo-enamadlogo-samandehi