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

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

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

ﺳﻪ شنبه, 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;
        }

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

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

متشکرم

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

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

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

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

چهارشنبه, 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();
        }

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

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

سلام مجدد

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

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

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

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

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

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

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

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

ارسال پاسخ برای این تاپیک

ارسال پاسخ مخصوص اعضا سایت می باشد ! میتوانید با حساب کاربری خود وارد سایت شده یا ثبت نام کنید