2009-10-27 5 views
0

Pouvons-nous mettre à jour un enregistrement en utilisant Table.Attach() dans LINQ to SQL?Mise à jour des données Linq

Si oui, comment? L'idée est, je vais créer un nouvel objet, l'attacher à la Table (qui à son tour sera attachée à DataContext), puis je soumettrai des changements, etc. Il correspond à l'ID, l'objet existant sera mis à jour.

Répondre

0

Vous devez faire ce qui suit:

  1. désérialiser l'objet de sa source. (Table.Attach() ne doit être utilisé que pour réassocier une entité à un DataContext après sa sérialisation).

  2. Appel Table.Attach() pour attacher l'entité à la table.

  3. Effectuez les mises à jour de l'entité.

  4. Appelez DbContext.SubmitChanges();

+0

Mais je parlais de créer un nouvel objet et ensuite l'attacher. – anonymous

+0

Alors Table.Attach() est la mauvaise façon de faire les choses. Vous devez créer une nouvelle instance de votre objet, puis appeler Table.InsertOnSubmit(). –

0

Si vous utilisez la colonne RowVersion, Attach() peut être utilisé. Dans un cas différent, vous devrez transmettre les objets modifié et original aux paramètres de la méthode Attach. Plus d'informations sont disponibles here.