C # Não é possível determinar o fim principal do relacionamento

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();

Esse código duplica linhas noMyFile tabela, por exemplo, se o loop repetir 3 vezes, vejo 6 linhas (3 x 2 *adapter.db.SaveChanges() ???)

Mas, se eu tiver apenas umadapter.db.SaveChanges(); (aquele último) eu recebo o erro

Não é possível determinar o final principal do relacionamento 'my_dbModel.FK_MyFile_File'. Diversas entidades adicionadas podem ter a mesma chave primária.

Eu suponho que é causado que, nesse caso, não cometer oadapter.db.File.AddObject(newFile); itens antes de atribuí-los aoitem.MyFile.Add(new MyFile { FileID = newFile.FileID }); Mas eu posso estar errado, alguma idéia de como consertar isso?

questionAnswers(2)

yourAnswerToTheQuestion