Используйте SingleOrDefault
, если вы ожидаете 0 или 1, или FirstOrDefault
, если вам просто нужна первая запись из потенциально большого количества, но вы можете справиться с 0. Оба вернут значение по умолчанию для типа (обычно ноль), еслирезультатов нет.
Кстати, подобные запросы обычно более читабельны (IMO) без с использованием выражения запроса, поэтому вы можете получить что-то вроде:
var efCompany = _dbRiv.Company
.Where(a => a.CompanyId == companyFeedInfo.CompanyId)
.SingleOrDefault();
if (efCompany != null)
{
// Use it
}
else
{
// Report to user, or whatever
}
Выражения запроса хороши, когда вы используете несколько операторов или выполняете относительно сложные вещи, такие как объединения - но если у вас просто есть предложение where
или просто естьпроекция, эта «точечная нотация» является более простой IMO.Это также работает лучше, когда вам нужно вызвать метод, такой как FirstOrDefault
в конце.