Я разрабатываю приложение HRM для импорта и экспорта данных XML из базы данных. Приложение получает экспортированные данные XML для записи сотрудника. Я импортировал xml-файл, используя linq to xml, где я преобразовал xml в соответствующие объекты. Затем я хочу прикрепить (обновить) объекты сотрудника.
Я пытался использовать
//linqoper class for importing xml data and converts into IEnumerable employees object.
var emp = linqoper.importxml(filename.xml);
Using (EmployeedataContext db = new EmployeedatContext){
db.attachAllonSubmit(emp);
db.submitchange();
}
Но я получил ошибку
“An entity can only be attached as modified without original state if it declares as version member or doesn't have an update check policy”
.
У меня также есть возможность получить каждого сотрудника и присвоить значение новому сотруднику из данных XML с использованием этого формата.
//import IEnumerable of Employee objects
var employees = = linqoper.importxml(filename.xml)
using(Employeedatacontext db = new Employeedatacontext){
foreach(var empobj in employees)
{
Employee emp = db.Employee.where(m=>m.id==empobj.Id);
emp.FirstName=empobj.FirstName;
emp.BirthDate=empobj.BirthDate;
//….continue
}
db.submitChanges();
}
Но проблема с вышесказанным в том, что мне приходится перебирать все объекты сотрудников, что очень утомительно.
Так есть ли другой способ, я мог бы присоединить (обновить) сущность сотрудника в базе данных, используя LINQ to SQL.
Я видел несколько похожих ссылок на SO, но ни одна из них, похоже, не помогает.
/822229/linq-to-sql-prisoedinit-obnovit-obekt-entity