سلام ، خسته نباشید .در رابطه با متد Get در Repository چنتا سوال داشتم :
1- با تعریف فیلد dbSet از نوع DbSet<TEntity> و مقدار دهی اون در قسمت سازنده ، همه ی داده های جدول مورد نظر واکشی میشه ،
بهتر نیست این فیلد از نوع IQueryable<TEntity> تعریف بشه تا تنها زمانی که نیازه و پس از اعمال فیتر در متد Get ، واکشی صورت بگیره ؟
2- در قسمت انتهایی متد Get بهتر نیست نتایج به List تبدیل نشن و با همون نوع IQueryable<TEntity> فرستاده بشن تا زمانی که در قسمت جستجوی برنامه قرار هست چند فیلتر مختلف اعمال کنیم ، پس از اعمال همه ی این فیلتر ها در نهایت تبدیل به List کنیم ؟
برای مثال در قسمت جستجوی تراکنش ها ، در صورت انتخاب طرف حساب ، فیلتر مربوط به طرف حساب انجام میشه و در صورت انتخاب تاریخ شروع ، فیلتر مربوط به تاریخ بر روی همون نتایج قبلی انجام میشه یعنی یه سری از داده ها زیاد تر از مقدار نیاز واکشی شدن چون در انتهای متد Get همه ی داده ها به List تبدیل شدن .
سلام
اگه امکانش هست ممنون میشم به سوال من پاسخ بدین.
سلام
۱ خیر نمیشه
۲ بله میشه
وقت بخیر ، ممنون از پاسخ
در مورد سوال 1 ، نوع DbSet<TEntity> خاصیت Lazy load داره ؟ اگر خیر ، بنابراین هر بار که از متد Get استفاده کنیم ، اول کار بدون توجه به فیلتر ها ، فیلد dbSet در سازنده با همه ی داده های جدول پر میشه که ما به همه ی این داده ها نیازی نداریم ؛ پس چرا نمیشه dbSet رو از نوع IQueryable<TEntity> تعریف کنیم تا این مشکل حل بشه ؟
بله در آموزش repository در سایت توضیح دادم
خیلی ممنون