دسته بندی ها
00:20 1398/08/07

خطای Unable to create a constant value of type در انتیتی فریم ورک

مشخصات سوال کننده :
کاربر : sepidemir2     امتیاز کاربر : ‎−3     رتبه کاربر : 7152
دسته بندی : Asp.net Mvc

به این سوال امتیاز بدهید    0
تعداد بازدید این سوال : 4105
هوش مصنوعی

پاسخ هوش مصنوعی

این خطا معمولاً زمانی رخ می دهد که شما سعی دارید یک شیء را به عنوان یک مقدار ثابت در شرط پرس و جو استفاده کنید، در حالی که فقط نوع های اولیه یا نوع های شمارشی (enumeration types) پشتیبانی می شوند. در حاضر شما به نظر می رسد که مقدار `rand` که در شرط `where` استفاده شده، یک نوع غیر ابتدایی است.

برای حل این مشکل، اطمینان حاصل کنید که نوع `rand` از نوع های ابتدایی (مانند `int`, `string`, و ...) باشد. در غیر این صورت، می توانید از روش های زیر استفاده کنید:

1. اطمینان حاصل کنید که `rand` یک نوع ابتدایی است.

2. اگر `rand` یک شیء است، می توانید آن را به یک نوع ابتدایی تبدیل کنید یا فقط مقدار خاصی از آن را استفاده کنید.

به عنوان مثال اگر `rand` یک شیء خاصی از نوع `Product` باشد، می توانید فقط `ProductID` آن را استفاده کنید:


var q = from a in db.Tbl_ShopingCarts
        where a.K.Equals(rand.ProductID) // فرض بر اینکه rand دارای خاصیت ProductID است
        select a;
به این پاسخ امتیاز بدهید    0
امتیاز: - رتبه: -
پاسخ دهنده : saedbfd 14:38 1398/08/07

شما در قطعه کد زیر به نظر میاد اشکال دارید

 

  var q = from a in db.Tbl_ShopingCarts
                    where a.K.Equals(rand)
                    select a;

 

در واقع شما کوئری رو نوشتید ولی اجرا یا Execute نکردید

 

  var q = (from a in db.Tbl_ShopingCarts
                    where a.K.Equals(rand)
                    select a).ToList();

 

شما بعد از نوشتن کوئری در Linq باید توسط دستورات ToList یا ToArray اون رو اجرا کنید

موفق باشید

ویرایش شده در سه شنبه 7 آبان 1398 ساعت 14:38:55
به این پاسخ امتیاز بدهید    0
امتیاز: 1664 رتبه: 1
برای ارسال پاسخ لطفا وارد حساب کاربری خود شوید.   ورود