foreach (var item in order.MyFiles)
{
var newFile = adapter.db.File.CreateObject();
newFile.Name = item.FileName;
adapter.db.File.AddObject(newFile);
adapter.db.SaveChanges();
item.MyFile.Add(new MyFile { FileID = newFile.FileID });
adapter.db.SaveChanges();
}
foreach (var item in tempFilesList)
{
adapter.db.DeleteObject(item);
}
adapter.db.SaveChanges();
Этот код дублирует строки в таблице MyFile
, например, если цикл повторяется 3 раза, я вижу 6 строк (3 x 2 * adapter.db.SaveChanges()
???)
Но, если у меня только один adapter.db.SaveChanges();
(последний), я получаю ошибку
Невозможно определить основной конец отношения 'my_dbModel.FK_MyFile_File'. Несколько добавленных объектов могут иметь один и тот же первичный ключ.
Я предполагаю, что это вызвано тем, что в этом случае он не фиксирует элементы adapter.db.File.AddObject(newFile);
, прежде чем указывать их на item.MyFile.Add(new MyFile { FileID = newFile.FileID });
Но я могу ошибаться, любые идеи, как его исправить?