Если я правильно вас понимаю, ваша проблема возникает из-за того, что вы проецируете столбец, который может содержать пустые значения, и вы не можете различить FirstOrDefault()
, возвращающий ноль, поскольку поле было пустым, а запись не была найдена:
var lastName = persons
.Where(p => p.FirstName == 'xxx')
.Select(p => p.LastName)
.FirstOrDefault();
Простым решением будет проецирование вашего столбца в анонимный тип:
var record = persons
.Where(p => p.FirstName == 'xxx')
.Select(p => new { p.LastName })
.FirstOrDefault();
Таким образом, если record
само по себе равно нулю, то это означает, что запись не найдена.Однако если record
не равно нулю, а record.LastName
равно нулю, то запись была найдена со значением поля null
.