Может кто-нибудь объяснить, почему следующий код не может обновить базу данных или что еще я могу сделать для устранения неполадок?
// *********************************
// People Updates
// *********************************
// In Engr and SoE
EmplIDs = InputList.GetPeopleIds(InputType.Engr | InputType.SoE); // retrieve IDs in tables Engr and SoE
Engr = DB.GetEngrByIds(EmplIDs); // retrieve objects from Engr
SoE = DB.GetSoEByIds(EmplIDs); // retrieve objects from SoE
Batch.Update(SoE, Engr); // update SoE with Engr data
DB.Save(SoE); // persist
// Inside DB repository
public void Save(List<SoE_People> people) {
ChangeSet cs = dc.GetChangeSet();
foreach (SoE_People person in people.Where(p => cs.Updates.Contains(p))) {
person.LastUpdate = DateTime.Now;
}
dc.SubmitChanges();
}
Я проверил следующее:
- people.Count ~ 2500, cs.Updates.Count ~ 200
- dc.GetChangeSet.Updates.Count = 0 после вызова SubmitChanges ()
- все обновления объекта people верны.Они видны в локальном окне через людей и cs.Updates [x]
- исключение не выдается dc.SubmitChanges ()
- установка dc.Log = Console.Out не показывает SQL дляSubmitChanges ()
- предыдущий раздел кода, который вставляет новые записи через dc.InsertAllOnSubmit (), работает нормально -> нет проблем с правами на запись.
- ручная вырезка и вставка данных в таблицу SoE_Peopleработает -> нет проблем с внешним ключом.