Search code examples
c#linq-to-sql

linq2sql: Cannot add an entity with a key that is already in use


I have a linq2sql setup where objects are sent from client side (flex via flourinefx) and attach them to a new datacontext a seen below:

I also have a "global" datacontext that is used throughout the session.

    public static void Update(Enquiry enquiry)
    {
        OffertaDataContext db = new OffertaDataContext();


        db.Enquiries.Attach(enquiry);
        db.Refresh(RefreshMode.KeepCurrentValues, enquiry);

        db.SubmitChanges();
    }

This approach usually works fine, but after a while I get the error "Cannot add an entity with a key that is already in use".


Solution

  • I think this error happens if you Attach an entity to a DataContext that was already loaded.

    The code that causes the error is exactly like you show here? After creating the new OffertaDataContext do you query anything before the Attach?