Я пытаюсь запросить XML с помощью Linq.У меня есть следующий фрагмент XML ...
<report>
<invoice>
<id>A4245</id>
<date>12-20-2016</date>
<amount>12.50</amount>
</invoice>
<report>
Вот моя модель для хранения данных
public class InvoiceModel
{
public string InvoiceId { get; set; }
public string InvoiceDate { get; set; }
public string InvoiceAmount { get; set; }
}
, а вот запрос LINQ
XDocument xml = XDocument.Parse(@"C:\Path\To\data.xml");
InvoiceModel invoice = xml.Descendants("invoice")
.Select(x => new InvoiceModel
{
InvoiceId = x.Element("id").Value.ToString(),
InvoiceDate = x.Element("date").Value.ToString(),
InvoiceAmount = x.Element("amount").Value.ToString()
});
Я получаю ошибку ..
Cannot implicitly convert type 'System.Collections.Generic.IEnumerable<InvoiceModel>' to 'InvoiceModel'. An explicit conversion exists (are you missing a cast?)
В XML будет только один счет.Как мне сообщить LINQ-запросу, что будет только один экземпляр счета-фактуры и нет необходимости в IEnumerable
?
PS Я использую все строки для значений свойств, так как они просто используются как тексти не будет анализироваться.