PDA

View Full Version : سوال: بهترین راه برای چک وجود داشتن داده در بانک چیست



Iran58
سه شنبه 10 مهر 1397, 13:18 عصر
سلام


فرض کنید یک جدول داریم که داخلش شماره داشنجوی وجود دارد


حال میخواهم چک کنم ببینم چنین شماره دانشجوی در جدول وجود دارد یا


که بنظرم از سه روش زیر بتوان استفاده کرد


var count = db.Student.Count(c => c.StudentId == studentId);


var count1 = db.Student.SingleOrDefault(c => c.StudentId == studentId);


var count2 = db.Student.Single(c => c.StudentId == studentId);

می خواهم بدانم ایا روش دیگری وجود دارد یا نه و کدام روش بهینه تر است


باتشکر

danialafshari
سه شنبه 10 مهر 1397, 16:48 عصر
از گزینه 2 استفاده کنید

از متد Find هم میتونید استفاده کنید که در اصل برای Remove و Edit مورد استفاده قرار میگیره

//Global Define
Person SelectedPerson = null;

//Into Event:
SelectedPerson = db.Context.Persons.Find(dataGridView1[0, dataGridView1.CurrentRow.Index].Value);

hakim22
سه شنبه 10 مهر 1397, 22:12 عصر
متد Single زمانی که برای مقدار ورودی بیش از یک خروجی پیدا کنه خطا میده. مثلا اگر بیش از یک Student در با Id مشخص در دیتابیس باشه خطا میده. همینطور زمانی که هیچ مقداری پیدا نکنه.

وقتی از SingleOrDefault استفاده می کنید در صورتی که هیچ مقدار خروجی پیدا نشه مقدار Null برگشت داده میشه و خطا اعلام نمیشه. زمانی باید از این روش استفاده کنید که مقدار Null قابل قبول باشه.
مثلا اگر در خط بعدی قراره با خروجی متد SingleOrDefault کار کنید باید این احتمال رو بدید که خروجی ممکنه Null باشه و خطای Null reference exception بگیرید.

mr.sirwan
چهارشنبه 11 مهر 1397, 02:45 صبح
اگه میخوای فقط وجود یا عدم وجودشو چک کنی از متد Any استفاده کن که مقدار bool بهت برمیگردونه:
var result = db.Student.Any(c => c.StudentId == studentId);