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?