Вам необходимо десериализовать XML в объекты. Вы не можете просто приводить XML как объекты. Когда вы говорите as IEnumerable<EmployeesModel>
, вы получите null
, поскольку типы несовместимы. Ваш код может выглядеть примерно так:
var serializer = new XmlSerializer(typeof(EmployeesModel));
var model =
from xml in xmlDoc.Descendants("employee")
select serializer.Deserialize(xml.CreateReader()) as EmployeesModel;
Другой вариант, который вы можете рассмотреть, это проецировать XElement
s в объекты EmployeesModel, например:
var model =
from xml in xmlDoc.Descendants("employee")
select new EmployeesModel {
employeeName = (string)xml.Element("employeeName"),
employeePosition = (string)xml.Element("employeePosition"),
employeeDescription = (string)xml.Element("employeeDescription"),
employeePhoto = (string)xml.Element("employeePhoto"),
employeeID = (int)xml.Element("employeeID"), };
Как видите, это может быть утомительным. Однако это может быть уместно. Если ваш XML-файл представляет все данные о сотрудниках, но ваше представление отображает только подмножество данных или данные в другой структуре, вы, вероятно, не хотите, чтобы модель представления была прямой копией содержимого вашего хранилища данных.