У меня есть метод, который будет принимать данные из БД, и я хотел бы вернуть один объект назад.Попытка понять LINQ
Однако следующий код вернет значение null.
Я уже проверял, что вход dt содержит 1 запись.
Этот метод работает, если я изменяю тип возвращаемого объекта с объекта на список объектов.
Я связываюсь, чтобы понять, почему в этом случае и почему я не могу вернуть только один объект.
public PersonObj GetPersonInformation(string personName)
{
DataTable dt = _oracle.GetPersonInformation(personName);
var aPerson = dt.AsEnumerable().Select(x =>
new PersonObj
{
FirstName = x.Field<string>("FIRST_NAME"),
LastName = x.Field<string>("LAST_NAME"),
PhoneNumber = x.Field<string>("PHONE_NUMBER")
}).ToList().Take(1);
return aPerson as PersonObj;
}
Из связанного дубликата: «Наконец, разница между First() и Take() заключается в том, что First() возвращает сам элемент, а Take() возвращает последовательность элементов, содержащую ровно один элемент. (Если вы передаете 1 как параметр). " –
Сторона примечания: ожидается, что автор вопроса выполнит некоторое базовое исследование (т.е. прочитает статьи MSDN по каждому методу, используемому в вопросе для C#), не делая этого (или не демонстрируя результаты), не очень хорошо отражается на авторе, а также может (даже если сообщение ничего не случилось - они не могут исправить себя) –