заполнение Entity DataModel из XML с использованием Linq - PullRequest
1 голос
/ 07 октября 2011

У меня есть приложение C # .net 3.5, использующее модель данных объекта ADO.NET. Я загружаю содержимое для данной записи базы данных из файла XML. Какой лучший способ конвертировать List<String> из XML в EntityCollection<>?

XML выглядит так:

<Task>
    <Name>Test Task</Name>
    <SerialNumbers>
        <Serial>12345678901</Serial>
        <Serial>98765432101</Serial>
    </SerialNumbers>
</Task>

База данных выглядит так:

task { [int, pk]TaskID }
criteria_serialnumber { [int, pk]SerialNumberID, [string]SerialNumber }
task_serialnumber { [int, pk]SerialNumberID, [int, pk]TaskID }

Код C # выглядит следующим образом:

using (XmlTextReader xml = new XmlTextReader(task_file))
{
    XElement x = XElement.Load(xml);

    // this works great.
    task.Name = x.Element("Name").Value;

    // How do I convert from List<String> to EntityCollection<criteria_serialnumber> ? 
    task.SerialNumbers = (from i in x.Element("SerialNumbers").Elements("Serial") select i.Value).ToList();
}

1 Ответ

0 голосов
/ 08 октября 2011

Вам не нужно конвертировать List<string> в EntityCollection<criteria_serialnumber>.Вам просто нужно добавить каждый элемент к существующему EntityCollection:

var serialNumbers = x.Element("SerialNumbers").Elements("Serial")
                     .Select(sn => sn.Value).ToList();

foreach (var serialNumber in serialNumbers)
    task.SerialNumbers.Add(new SerialNumber { SerialNumber = serialNumber });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...