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();
That code duplicates rows in the MyFile table, e.g if the loop iterates 3 times I see 6 rows (3 x 2*adapter.db.SaveChanges() ???)
But, if I just have only one adapter.db.SaveChanges(); (that last one) I get the error
Unable to determine the principal end of the 'my_dbModel.FK_MyFile_File' relationship. Multiple added entities may have the same primary key.
I suppose it is caused that in that case it doesn't commit the adapter.db.File.AddObject(newFile); items before assinging them to the item.MyFile.Add(new MyFile { FileID = newFile.FileID }); But I can be wrong, any ideas how to fix it?