Note that there are some explanatory texts on larger screens.

plurals
  1. POSystem.InvalidOperationException: Cannot attach an entity that already exists
    primarykey
    data
    text
    <p>I'm attempting to attach to an object that I've previously detached from. My detach operation is as follows: </p> <pre><code>partial class Organization : IDetachable { #region IDetachable Members public void Detach() { if (IsAttached) { PropertyChanged = null; PropertyChanging = null; // Detach children -- administrators first. foreach (var administrator in Administrators) { // Detach all of our administrators. if (administrator.IsAttached) { administrator.Detach(); } } // now detach users. foreach (var user in Users) { if (user.IsAttached) { user.Detach(); } } } } #endregion } </code></pre> <p>Note that there are two children to this type, Organization: Administrators and Users. When I load the Organization I detach from all of them.</p> <p>In my scenario I'm trying to create a new Administrator. Here is the code from my AdministratorRepository:</p> <pre><code>public void Save(Administrator administrator) { if (!DataContext.Administrators.Contains(administrator)) { Log.Debug("This is a new administrator."); administrator.Id = Guid.NewGuid(); administrator.CreatedDate = DateTime.Now; administrator.Disabled = false; DataContext.Organizations.Attach(administrator.Organization); DataContext.Administrators.InsertOnSubmit(administrator); } else { // Attach to our data context. DataContext.Administrators.Attach(administrator); } DataContext.SubmitChanges(); // Now that we're done... administrator.Detach(); } </code></pre> <p>I'm currently getting an exception when trying to attach to an organization (DataContext.Organizations.Attach(administrator.Organization)). I've verified that </p> <ul> <li>The Organization is valid and detached (i.e. it's event handlers are null)</li> <li>There is only one Administrator in the list of administrators (the administrator that I'm currently trying to save).</li> </ul> <p>As I write this, I'm wondering if it actually has to do with a sort of circular dependency -- the Administrator in question has a primary key (i.e. I set ID before I call attach) and the data context is basically seeing the Administrator via the Organization's children?</p> <p>If that's the case, what is the best way to deal with these parent -> child relationships in LINQ to SQL?</p>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload