Думайте об отношениях как о двух сторонах. Когда вы устанавливаете одну сторону отношения, другую сторону необходимо обновить, поэтому в вышеупомянутом случае, а также при установке ProductOptionCategory он эффективно добавляет новый объект в отношение ProductOptions на стороне ламината ProductOptionCategory.
Обходной путь, как вы уже обнаружили, и вместо этого установить базовый внешний ключ, чтобы LINQ to SQL не отслеживал объекты обычным способом и требовал неявного указания, что объект должен сохраняться.
Конечно, лучшим решением для производительности было бы определить из исходных данных, какие объекты вы не хотите добавлять, и никогда не создавать экземпляр в первую очередь.