Я не знаю, что вы подразумеваете под "удобством", но это, безусловно, возможно.
Вы можете довольно просто сопоставить узлы XElement
с вашими объектами, сгенерированными LINQtoSQL / EF, если схемыmatch.
Ваш приведенный выше код должен привести к IEnumerable<XElement>
с XName
"Person",
, поэтому от вас просто нужно сделать что-то вроде
IEnumerable<Person> people = nodes.Select(xe => new Person {
PersonID = int.Parse(xe.Element("PersonID").Value),
OtherProperty = xe.Element("OtherProperty").Value
});
Вам потребуется выполнить некоторые преобразования, например int.Parse()
для некоторых типов данных, поскольку XElement.Value
возвращает строку.
Затем, чтобы сохранить ее в базе данных, давайте предположим, что MyDataContext
- это LINQ to SQLсгенерированный DataContext
объект со свойством People
, то есть Table<Person>
.Все, что вам нужно сделать, это:
MyDataContext db = new MyDataContext();
db.People.InsertAllOnSubmit(people);
db.SubmitChanges();