۲ حمیدرضا جلیلی
سوال در رابطه با عملکرد برنامه
جامعه ASP.NET ایجاد شده در ۲۸ اسفند ۱۴۰۱

سلام

در کنترلر ProductController ما یک کنترلر با چند Action داریم که به ازای اکشن‌ها هم view ساخته ایم

اگر در view ای که به کاربر نمایش داده میشود کاربر گزینه پیش فرض یا Index را وقتی خواست مشاهده کند دستورات Action مربوط به Index در ProductController باید اجزار شوند

همه ی داده هایی که بین کنترلر , View‌ها ردو بدل میشوند از طریق مدل‌ها هستند پس طبیعتا با مدل‌ها سرو کار داریم و وقتی صحبت از مدل‌ها میشود یعنی با ProductService‌ها سرو کار داریم:

 public IActionResult Index()
        {
            var model = _productService.FindAllAsync().Result;
            return View(model);
        }

در کد بالا از طریق _productService به متد FindAllSync دسترسی پیدا میکنیم و در این متد هم به Productcoreservice‌ها دسترسی پیدا میکنیم و یعنی از این به بعد دسترسی پیدا کردیم به متدهای مربوط به Entity ها

 public async Task<List> FindAllAsync()
        {
            return _productCoreService.GetAll().ToList().ToListModel();
        }

حالا در کلاس Productcoreservice چون از Baseservice ارث بری کرده است الان میتوانیم متد GetAll() را فراخوانی کنیم

  public virtual IEnumerable GetAll()
        {
            return _repository.GetAll();
        }

متد GetAll در Productcoreservice هم به یک object از IRepository دسترسی دارد که آنجا هم یک متد GetAll وجود دارد و در نهایت پیاده سازی آن دستور هم در کلاس EfRepository hsj ودستور زیر اجرا میشود:

  public virtual IEnumerable GetAll()
        {
            try
            {
                return Entities.ToList();
            }
            catch (DbUpdateException exception)
            {
                throw new Exception(GetFullErrorTextAndRollbackEntityChanges(exception), exception);
            }
        }

سوال اول :آیا تحلیل به درستی صورت گرفته و یا دارای اشتباهی است؟

سوال دوم: قطعه کد آخر چه کاری انجام میدهد؟ و در Entities که یک نمونه از Dbset است چه میکند و چرا تبدیل به ToList میکنیم روی نمدونم

لطفا به جای پاسخ به این سوال سوال بعدی رو پاسخ بدید که تکمیلتر کردم

چون گزینه ویرایش حذف شده بود مجبور شدم در قالب یک سوال جدید این رو مطرح کنم

با عرض معذرت و تشکر

حمیدرضا جلیلی ۰۱ فروردین ۱۴۰۲، ۰۷:۳۸

بهترین پاسخ
احمدرضا فاطمی کیا ۰۱ فروردین ۱۴۰۲، ۰۷:۳۸