2009-09-21 3 views
0

J'essaye d'effectuer une mise à jour directe en utilisant LinqToSQL, et je n'arrive tout simplement pas à le faire fonctionner.Problème de mise à jour LinqToSql lors du changement de parent

Voici le modèle de données: il y a un timesheet_entry et client. Un client a beaucoup timesheet_entries. C'est une simple relation de clé étrangère.

Si je modifie un timesheet_entry existant, j'obtiens une exception si je change le customer_id.

Voici ma tentative pour le code. Quelqu'un peut-il m'aider ici?

 internal void CommitChangesToEntry(Timesheet_Entry entry) 
     { 

      Timesheet_Entry latest = (from e 
             in m_dataContext.Timesheet_Entries 
             where e.Timesheet_Entry_ID == entry.Timesheet_Entry_ID 
             select e).First(); 


      latest.Entry_Start_DateTime = entry.Entry_Start_DateTime; 
      latest.Entry_End_DateTime = entry.Entry_End_DateTime; 
      latest.Task_Description = entry.Task_Description; 

      // Comment out this line of code and it 
      // doesn't throw an exception 
      latest.Customer_ID = entry.Customer_ID; 

      m_dataContext.SubmitChanges(); // This throws a NotSupportedException 

     } 

L'erreur est: « Une tentative a été faite pour attacher ou ajouter une entité qui n'est pas nouveau, peut-être avoir été chargé d'une autre DataContext non prise en charge. ».

+0

utilisez-vous DataContext pour de nombreux SubmitChanges? –

Répondre

0

Avez-vous des raisons de ne pas utiliser la méthode Attacher? Comme ce qui suit:

m_dataContext.Timesheet_Entries.Attach(entry); 
m_dataContext.SubmitChanges(); 
Questions connexes