PDA

View Full Version : سوال: خطا در اجرای کد Linq



hahaie
یک شنبه 29 آذر 1394, 16:39 عصر
سلام.
بی زحمت توی تصویر زمینه نگاه کنین.
برای درج رکورد جدید بنده اول اومدم توی جدول سرچ کردم که کد کارمند تکراری نباشه.ولی نمیدونم چرا این کد Linq خطا میده.پیغامشم اصلا قابل فهم نیس.
137553

جالبه من قبلا این کد رو (البته روی جدول دیگه)توی فرمای دیگه نوشته بودم خطا نمیداد ولی الان خطا میده! :گیج:

به جای First از FirstOrDefault استفاده کردم دیگه خطا نمیده البته نمیدونم فرقش چیه؟و چرا قبلا جواب میداد؟؟؟؟

Mahmoud.Afrad
یک شنبه 29 آذر 1394, 23:56 عصر
خروجی متد First نباید null باشه و زمانی استفاده میشه که مطمئن هستید خروجی null نیست.
FirstOrDefault زمانی استفاده میشه که ممکنه نتیجه null باشه که در اینجا به جای First بایست از این متد استفاده کرد.

اما چون شما فقط میخواهید وجود یا عدم وجود رو بررسی کنید و به اطلاعات اون شئ نیازی ندارید می بایست از متد Any استفاده کنید. این متد مقداری از نوع Boolean برمیگردونه که در صورتی که رکوردی را با شرط مورد نظر پیدا کند True و در غیر اینصورت False برمیگردونه. با بررسی این مقدار میتونید عمل مناسب انجام بدید.
مثال:

bool isRegistered = db.Users.Any(u => u.Username == textBox1.Text);
if (isRegistered == false)
{
// insert new record into the database
}