Если First () приводит к
Sequence contains no elements
Это означает, что условие в лямбда-выражении не привело к попаданию. Потому что First требует, чтобы у вас было хотя бы одно совпадение.
Если FirstOrDefault (). Свойство приводит к
Object reference not set to an instance of an object
Это означает, что лямбда-выражение не привело ни к какому обращению, и оно возвращает значение по умолчанию типа возврата. В случае ссылочного объекта он будет нулевым. Затем вы попытались получить доступ к свойству null, которое вызывает исключение.
Проще говоря. Ваша проблема в том, что ваше сравнение не возвращает ни одного хита.
Вам нужно вставить отказоустойчивый, чтобы это не делало sh
Что-то вроде:
public string GetOfficeNamebyNumber(string officeNumber)
{
var result = db.Office.FirstOrDefault(g => g.OfficeNumber == officeNumber);
if(result == null)
return string.Empty;
return result.OfficeName;
}
Это также может быть сокращено до
public string GetOfficeNamebyNumber(string officeNumber)
{
var result = db.Office.FirstOrDefault(g => g.OfficeNumber == officeNumber);
return result?.OfficeName ?? string.Empty;
}
или даже
public string GetOfficeNamebyNumber(string officeNumber)
{
return db.Office.FirstOrDefault(g => g.OfficeNumber == officeNumber)?.OfficeName ?? string.Empty;
}
Я надеюсь, что это пошаговое объяснение даст вам информацию, необходимую для решения проблемы.