مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

reza

عضویت از 1392/02/15

روش صحیح بدست اورن پارامتر از کوئری و ارسال به ویو مدل

  • سه شنبه 10 اردیبهشت 1398
  • 23:37
تشکر میکنم

سلام.از اینکه صبوری می کنید و راهنمایی می کنید ممنونم

 public IEnumerable<ShowAboutViewModel> showabout()
        {
            var query = _db.AboutUsRepository.Get();

            // 1
            var ii=new ShowAboutViewModel()
            {

                AboutUsFa = query.AboutUsFa,
                AboutUsEn = query.AboutUsEn
            }


            //  2
            var item = (from o in query select new ShowAboutViewModel
            {
                AboutUsFa=o.AboutUsFa,
                AboutUsEn=o.AboutUsEn
            }); 
          
            return item;
        }

در کد بالا من سعی کردم از روش اول بعد از کوری مقادیر رو به ویو مدل ارسال کنم اما پارامتر های مورد نظر شناخته نمی شد.

در روش دوم بعد از کوئری زدن مجدد پارامتر هامو بدست اوردم.ایا روش که استفاده کردم درست هست؟

متشکرم

پاسخ های این پرسش

تعداد پاسخ ها : 4 پاسخ
کاربر سایت

محمد اردوخانی

عضویت از 1396/05/17

  • چهارشنبه 11 اردیبهشت 1398
  • 09:38

با سلام خدمت شما

میشه متد get که نوشتین رو ارسال کنین؟

در روش اول متد get شما فکر میکنم که queryable برمیگردونه و برای همین هم هستش که عمل نمیکنه

کاربر سایت

reza

عضویت از 1392/02/15

  • چهارشنبه 11 اردیبهشت 1398
  • 11:02
        public virtual IEnumerable<Tentity> Get(Expression<Func<Tentity, bool>> where = null, Func<IQueryable<Tentity>, IOrderedQueryable<Tentity>> orderby = null, string includes = "")
        {
            IQueryable<Tentity> query = _dbset;
            if (where != null)
            {
                query = query.Where(where);
            }
            if (orderby != null)
            {
                query = orderby(query);
            }

            if (includes != "")
            {
                foreach (string includ in includes.Split(','))
                {
                    query = query.Include(includ);
                }
            }
            return query.ToList();
        }

سلام.این متد  هستش.ممنونم از شما.این در واقع متد ریپوزیتوری اصلی هست.و این روش رو از آموزش های اقای مدائنی عزیز یاد گرفتم.

کاربر سایت

محمد اردوخانی

عضویت از 1396/05/17

  • پنجشنبه 12 اردیبهشت 1398
  • 11:17

سلام مجدد

مورد اولی که نوشتین رو من وقتی با دقت بیشتری نگاه کردم دیدم که که شما روی لیست اومدین از Property های AboutUsFa و AboutUsEn استفاده کردین

کدی که نوشتین یه لیست برمیگردونه پس مسلما نمیتونین از Property های اون استفاده کنین مگر اینکه با استفاده از حلقه ، تمام اطلاعات رو بررسی کنین

کد دوم شما کار میکنه چون اومدین با استفاده از linq اطلاعات دیتابیس رو رصد کردین و دیتا رو واکشی کردین

مشکلی که کد شما الان داره برمیگرده به repository که نوشتین

توی دیتای با حجم بالا، سیستم شما به شدت کند میشه چراکه تمام اطلاعات دیتابیس شما در Repository واکشی میشن

این مورد رو میتونین با Custom Service رفع کنین یا اینکه برای Generic Repository که نوشتین ، سیستم Pagging پیاده سازی کنین

کاربر سایت

reza

عضویت از 1392/02/15

  • پنجشنبه 12 اردیبهشت 1398
  • 18:13

متشکرم.اراهنمایی های شما کمک زیادی کرد.منظور از customservice همان استفاده از IOC و ServiceLocator هست؟اگر غیر از این هست ممنون میشم لینک مقاله بهم معرفی کنید.
باز هم ممنون

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)