First() در مقابل Single()
First اولین رکورد موجود را برمیگرداند.
| ویژگی | First() | Single() |
|---|---|---|
| چند نتیجه | قبول میکند | Exception |
| هیچ نتیجه | Exception | Exception |
| FirstOrDefault | دارد | SingleOrDefault |
| Performance | سریعتر | کمی کندتر |
| کاربرد اصلی | گرفتن اولین مورد | داده Unique |
کِی از First() استفاده کنیم؟
Single انتظار دارد دقیقاً یک رکورد وجود داشته باشد.
کِی از Single() استفاده کنیم؟
تفاوت اصلی در تعداد رکوردهای قابل قبول است.
First با چند نتیجه مشکلی ندارد، اما Single در صورت وجود بیشتر از یک نتیجه Exception میدهد.
مثال First()
var user = context.Users .First(x => x.Id == 1);
مثال Single()
var user = context.Users .Single(x => x.Email == email);
اشتباه رایج
استفاده از Single برای Queryهای معمولی و دریافت خطا در Production.
جمعبندی
یک نتیجه مهم نیست → First
دقیقاً یک نتیجه باید باشد → Single
