پیدا کردن کلید اصلی در ویومدل چه کوئری باید بزنیم؟

سوال شده توسط:

تاریخ ثبت: ۱۴۰۰/۰۴/۱۴

بازدید: 2,047

پاسخ: 1

تگ: Asp mvc


    return db.Pages.Find(id).Where(x => new adminPageViewmodel()
             {
                 pageId = x.PageId,
                 groupId = x.GroupId,
                 groupTitle = x.PageGroup.GroupTitle,
                 pageTitle = x.PageTitle,
                 pageImage = x.PageImageName,
                 pageShortText = x.PageShortText,
                 pageText = x.PageText,
                 pageVisit = x.PageVisitedCount,

             });
پاسخ ها
user

سوگند قاسم پور

سلام وقت بخیر

متوجه سوال تون نمی شم منظورتون اینه که می خواین کلید اصلی رو توی ویو مدل مشخص کنین ؟ اگه اینه سوال تون که باید از دیتا انوتیشن [key] استفاده کنین اگه منظورتون کوئری زدن به دیتابیس برای حالتی که قصد  پیدا کردن id که درواقع کلید اصلی تون هست دارین که همین که شما کاری مشابه زیر انجام بدین می تونین id سطر مورد نظر رو get کنین 

الان شما از الگوی ریپازیتوری استفاده کردین؟ اگه آره چرا از dependency injection استفاده نکردین ببینید روال تون باید به صورت زیر باشه بعد از اینکه اینترفیس تون رو نوشتین می رین سراغ پیاده سازی الگوی ریپازیتوری تون:

طبق نامگذاری شما این میشه pageRepository شما:

private MyCmsContext db;

        public PageRepository(MyProjectContext context)
        {
            this.db = context;
        }
 public Page GetPageById(int id)
        {
            return db.Pages.Where(x => x.Id == id).FirstOrDefault();
        }
        

یا از firstordefault مثل بالا استفاده کنین یا از find به صورت پایین

 public Page GetPageById(int pageId)
        {
            return db.Pages.Find(pageId);
        }

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

IPageRepository _pagerepository;
     
        public Pagecontroller (IPageRepository pagerepository)
        {
            _pagerepository= pagerepository;
        }
        public ActionResult GetById(int? id)
        {

            if (id == null)
            {
                return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
            }
            Page page=_pagerepository.GetById(id.Value);
            if (page== null)
            {
                return HttpNotFound();
            }
            return View(page);
        }

اول لطفا سناریو رو توضیح بدین که چیکار کردین و قصدتون چیه برای کد ها تا ببینم سوال توی چه حیطه ای دوست خوبم ولی اگه قصدتون پیدا کردن id که کلید اصلی پس موارد بالا کمک تون می کنه و احتیاجی به کدی که شما نوشتین نیست

برای ثبت پاسخ باید خود شوید

محبوب ترین مقالات