سلام دوستان
یک کویری دارم که توسط Linq نوشته شده. در نوشتن خود کویری مشکلی نیست. ولی میخوام این کویری فقط یک عدد int در نهایت برگردونه . کویری من در Linq به صورت زیر هست
var age = (from u in _context.product where u.supplierid == supplierid select u.number).Single();
انتظار دارم بعد از اجرا کویری بالا سن کاربر در متغیر age ذخیره شده باشه تا بتونم از این متغیر استفاده کنم. اما متاسفانه خطا میده و عددی در این متغیر وجود نداره.
سوال اینه که نحوه دریافت مقدار ثابت در یک کویری Linq به چه صورتی هست؟
خطای دریافت شده
Sequence contains more than one element
سلام. دوست عزیز کدتون رو به شکل زیر اصلاح کنید درست میشه.
var age = (from u in _context.users where u.userid == userid select new {u.age}).Single();
خب دوست عزیز مقدار فیلتر شده شما در کوئری بیش از یک مورد هست در صورتی که شما در اخر کوئری از Single استفاده کردید!
مقدار userid رو چک کنید ببینید درست هست یا خیر؟ در صورتی که درست باشه، کاربری با این آی دی بیش یک مورد در دیتابیس وجود داره!
var age = (from u in _context.product where u.supplierid == supplierid select u.number).Max();
کد بالا بزرگترین عدد ثبت شده رو بر میگردونه. و اگر به جای Max کلمه Last رو قرار بدید آخرین عدد رو برمیگردونه
تست بفرمایید و اگر مشکل برطرف نشد اعلام بفرمایید.
سلام
نکته اول دقت کنید که شما یک متغیر از نوع var تعریف کردید و پاسخ کوئری رو داخل این متغیر قرار دادید. بنابراین انتظار نداشته باشید بتونید مثل یک List باهاش برخورد کنید.
کوئری شما میتونه به کوئری زیر تغییر کنه
var age = (from u in _context.product where u.supplierid == supplierid select u)
.ToList().OrderByDescending(o => o.supplierid).Take(1).Select(s => new { supid = s.supplierid });
int lastnum = age.First().supid;
در کوئری بالا چند نکته وجود داره
خب تا اینجا مقدار آخرین عدد رو داریم اما اگر الان نمیتونید مثل یک متغیر int از این عدد استفاده کنید بنابراین در ادامه در متغیر lastnum آخرین اولین عدد موجود در متغیر var رو دریافت کردیم.
در حال حاضر متغیر lastnum یک متغیر معمولی int با مقدار آخرین عدد شما هست
موفق باشید
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
59
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
99
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1348
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1157
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
595
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
116
- پاسخ :
0
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
59
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
99
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1031
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
426
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1348
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4796
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1157
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
595
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
205
- پاسخ :
1
|