Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

LINQ to SQL Basic insert throws: Attach or Add not new entity related exception

Tags:

I am trying to insert a record. This code worked but has stopped working I don't know why. Here is the code:

using (SAASDataContext dc = new SAASDataContext())
{
    tblAssessment a2 = new tblAssessment();

    a2.AssessmentCentreId = centreId;
    a2.AttemptNumber = 1;

    dc.tblAssessments.InsertOnSubmit(a2);
    dc.SubmitChanges();

    CurrentAssessmentId = a2.AssessmentId;
}

The code compiles but throws the exception below on the dc.SubmitChanges(); line.

Exception thrown:

An attempt has been made to Attach or Add an entity that is not new, perhaps having been loaded from another DataContext. This is not supported.

Notes: AssessmentCentreId is a foreign key on tblCentre, centreId is a valid existing centre id, AssessmentCentreId and AttemptNumber are the only not null fields all other columns allow nulls.

I have googled but all the results seem to pertain to people trying to attach entities pulled from other disconnected DataContext's I'm not doing that so I'm stumped.

UPDATE:

Adding

dc.DeferredLoadingEnabled = false;

at the top of the using block makes it work, but I'd like to know why coz I have no idea at the moment sufficiently advanced technology being indistinguishable from magic right now :)