An image has many galleries, and a gallery has many images. I am trying to update the images that a gallery has. The code below works, but feels somewhat clumsy.\[code\] var g=db.Galleries.Find(gal.Id); var ims = gal.Images.Select(i => db.Images.Where(im => im.Id == i.Id && im.User.Id == user.Id)).SelectMany(im => im).ToList(); g.Name = gal.Name; g.Images.Clear(); foreach (var im in ims) { g.Images.Add(im); } db.SaveChanges();\[/code\]When I do this:\[code\]g.Images=ims;\[/code\]instead of:\[code\] g.Images.Clear(); foreach (var im in ims) { g.Images.Add(im); }\[/code\]An exception is thrown:\[code\]Violation of PRIMARY KEY constraint 'PK_GalleryImages'. Cannot insert duplicate key in object 'dbo.GalleryImages'.\[/code\]Can you explain why? Is there a better way to approach this?