ForeignKeyReferenceAlreadyHasValueException

Çözüm:

cover.OriginalSongId = song.SongId;

yerine,

cover.OriginalSong = song;

http://dotnetslackers.com/Community/blogs/bmains/archive/2009/05/21/linq-to-sql-error-foreignkeyreferencealreadyhasvalueexception.aspx

http://social.msdn.microsoft.com/Forums/en-US/linqprojectgeneral/thread/744b2c6a-ecb8-44bf-b72a-dc1b85b34342

If the association property is assigned a value you cannot change the foreign key field anymore, you must change the relationship by changing the assocition property. For example, using Customer and Order from Northwind sample database. If the 'Customer' property on an order is assigned a value you can no longer manually change the order's CustomerID field, since it must match the PK of the customer. You can, however, change the 'Customer' property directly, assigning it a new customer instance. This action will automatically update the CustomerID field to match.

search this blog (most likely not here)