C# – Cannot add an entity with a key that is already in use (LINQ)

c++linq

I get this error Cannot add an entity with a key that is already in use. when I run the code below.

Tables:
enter image description here

What am i missing?

    private void CopyAllPageObjects(int fromPageID, int toPageID)
    {
        CMSDataContext _db = new CMSDataContext();

        // Copy page objects
        var originalPageObjects = (from x in _db.CMSPageObjects
                                   where x.PageID == fromPageID
                                   select x);

        List<CMSPageObject> newPageObjects = new List<CMSPageObject>();
        foreach (CMSPageObject po in originalPageObjects)
        {
            CMSPageObject newPageObject = new CMSPageObject();
            newPageObject.PageID = toPageID;
            newPageObject.CMSObjectID = po.CMSObjectID;
            newPageObject.Name = po.Name;
            newPageObject.Sorting = po.Sorting;
            newPageObjects.Add(newPageObject);

            // Copy page object attribute values
            var originalPoavs = (from x in _db.CMSPageObjectAttributeValues
                                 where x.CMSPageObjectID == po.ID
                                 select x);

            List<CMSPageObjectAttributeValue> newPoavs = new List<CMSPageObjectAttributeValue>();
            foreach (CMSPageObjectAttributeValue poav in originalPoavs)
            {
                CMSPageObjectAttributeValue newPoav = new CMSPageObjectAttributeValue();
                newPoav.CMSAttributeID = poav.CMSAttributeID;
                newPoav.CMSPageObjectID = newPageObject.ID;
                newPoav.LCID = poav.LCID;
                newPoav.Value = poav.Value;
                newPoavs.Add(newPoav);
            }
            _db.CMSPageObjectAttributeValues.InsertAllOnSubmit(newPoavs);
        }

        _db.CMSPageObjects.InsertAllOnSubmit(newPageObjects);
        _db.SubmitChanges();
    }

Best Solution

I was getting this error and it was because I had forgotten to set the Primary Key field in the database to "Identity Specification" (auto-increment). But that is just a guess