Enregistrer les modifications dans Linq-to-SQL

Donc, voici ma espérons-le spin unique sur ce problème commun.

Je fais ma requête, obtenir mes objets, puis passer l'objet dans une forme où il remplit le formulaire avec les données de l'objet (ce qui n'est pas passé par référence).

Je puis modifier les valeurs de l'objet qui a été demandé (via le formulaire), et de renvoyer un nouvel objet construit à partir des valeurs du formulaire.

Je veux la mise à jour de la base de données. Attachez ne fait rien (s'exécute mais ne mettez pas à jour). SubmitChanges aussi ne fait rien (et les deux ne rien faire lorsqu'ils sont utilisés ensemble).

Ce qui me manque?

Mise à jour: ici c'est le code que j'utilise:

//In constructor
_dataMap = new DataMapDataContext();
_addresses = _dataMap.AddressItems
         .Where(address => address.InsertUserName == _currentUser.Name).ToList();



public void EditButtonClick()
{
    using (AddAddressForm form = new AddAddressForm(_addresses[_currentAddress]))
    {
        form.Text = "Edit Address";
        if (DialogResult.OK == form.ShowDialog())
        {
            _addresses[_currentAddress] = form.Item;
            _dataMap.SubmitChanges();
            DisplayItem();
        }
    }
}
  • Mec, vous a posé cette question hier, j'ai répondu (et a été cochée correct) - stackoverflow.com/questions/3756890/... quel est le problème?
  • Aussi, poste le code que vous avez essayé, ce qui ne fonctionne pas - sinon les gens vont "deviner" ce que vous avez/havent fait - la-dessous de la réponse en est un exemple
  • vrai, ils sont très similaires. Mais celui-ci est une mise à jour que l'on s'insère. (Je ne pense pas que InsertOnSumbit de travail pour les éléments mis à jour).
  • alors, permettez-moi obtenir ce droit, vous êtes newing le DataContext dans le constructeur, la valeur d'une variable d'instance publique, puis d'essayer d'ajouter quelques modifications sur l'événement click? ne marche pas vraiment le sens. où en êtes-vous de l'élimination du contexte? et qu'est-ce que AddAddressForm (et pourquoi c'est que, dans l'aide). @Naaeem la réponse est fondamentalement correcte (sauf le code doit être enveloppé dans l'aide)
InformationsquelleAutor Vaccano | 2010-09-22